我浏览了有关 stackoverflow、github、Google 等的许多主题……虽然没有简单的答案,但我找到了许多不同的答案。
我正在用 JavaScript 编写 Facebook 游戏(使用 melonJS 引擎)。框架是 Flask (Python)。
我想要做的是能够在 Python 和 JS 代码之间发送数据而无需刷新页面(如数据库操作、电子邮件发送等)。我希望用户只是看到游戏、选择选项、玩游戏,剩下的事情由游戏完成。
虽然我已经设法看到类似下面的东西会起作用:
应用程序.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)
应用程序.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}} 都可以工作。我只是想知道如何将函数发送到仅链接到 HTML 的 file.js(如上面的 jquery),而不是直接放在里面。正如我已经检查过的那样,“{{...}}”将不起作用。我想我可能必须找到一些 Python 模块或使用 AJAX,除非我不知道从哪里开始。