私はstackoverflow、github、Googleなどに関する多くのトピックを調べました...そして、単純な答えではありませんが、多くの異なる答えを見つけました.
JavaScript で Facebook ゲームを作成しています (melonJS エンジンを使用)。フレームワークは Flask (Python) です。
私がやろうとしているのは、ページを更新する必要なく (データベース操作、電子メール送信など)、Python と JS コードの間でデータを送信できるようにすることです。ユーザーがゲームを見て、オプションを選択し、プレイすれば、あとはゲームがやってくれることを望んでいます。
以下のようなものが機能することを確認できましたが:
app.py
def add(f,l,a):
g.db.execute('insert into persons (fname,lname,age) values (?, ?, ?)',
[f,l,a])
g.db.commit()
@app.route('/')
def index():
cur = g.db.execute('select fname, lname, age from persons order by id desc')
entries = [dict(fname=row[0], lname=row[1], age=row[2]) for row in cur.fetchall()]
return render_template('app.html',entries=entries,addtodb=add)
app.html
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>THE GAME</title>
<meta http-equiv="content-type" content="text/html;charset=utf-8" />
<meta name="generator" content="Geany 1.22" />
<script type="text/javascript" src="jquery-1.7.1.min.js"></script>
<script type="text/javascript">
var adddb = '{{addtodb('Anne','Monk','12')}}';
</script>
</head>
<body>
{{addtodb('Allie','Monk','78')}}
<ul class=entries>
{% for entry in entries %}
<li><h2>{{ entry.fname }} {{ entry.lname|safe }} </h2> Age: {{ entry.age }}</li>
{% else %}
<li><em>Unbelievable. No entries here so far</em></li>
{% endfor %}
</ul>
</body>
</html>
そして両方の {{addtodb}} が機能します。関数を file.js に送信する方法を知りたいのですが、これは HTML にのみリンクされ (上記の jquery のように)、内部に直接配置されるのではありません。「{{...}}」は、既に確認したように機能しません。Python のモジュールを見つけるか、AJAX を使用する必要があると思いますが、どこから始めればよいかわかりません。