gpt4 book ai didi

javascript - 从 Facebook 上的 JavaScript 文件 (melonJS) 游戏调用 Python 函数 (Flask)

转载 作者:太空宇宙 更新时间:2023-11-03 19:05:13 25 4
gpt4 key购买 nike

我浏览了 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)

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,但我不知道从哪里开始。

最佳答案

答案是“AJAX”,但希望一些简化的阐述能够帮助您指明正确的方向:

您需要使某种 JS 事件(单击链接、单击按钮、游戏中触发的事件)触发异步(即不等待服务器的响应)或同步(即等待回复) )通过请求调用服务器上的 Flask 端点(即您设置的路由)。如果您要创建一个新条目,那可能是一个 POST 请求。在服务器上验证并保存到数据库。

如果您还希望页面反射(reflect)由于服务器与数据库的行为而发生的任何情况,您的 Flask 端点需要返回 JSON 响应。由于您已经生成了页面上的 HTML 和 JS,因此需要将 JS 中的函数绑定(bind)为事件监听器,以便它查找 JSON 响应,然后解析 JSON 并执行您在函数中放入的任何代码。

JQuery 的 ajax 功能可以为您完成这一切。 Here is an example of a jQuery AJAX POST 。该示例使用 PHP 并不重要;您可以在 Flask View 中正常解析 POST 并返回 jsonify(data)。 See docs on Flask.jsonify .

关于javascript - 从 Facebook 上的 JavaScript 文件 (melonJS) 游戏调用 Python 函数 (Flask),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14922657/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com