从Faceb上的JavaScript文件(melonJS)游戏中调用Python函数(Flask)

2024-06-13 05:36:55 发布

您现在位置:Python中文网/ 问答频道 /正文

我看过很多关于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}都可以工作。 我只是想知道如何将函数发送到file.js,它将只链接到HTML(如上面的jquery),而不是直接放在里面。“{{…}”不会像我已经检查过的那样工作。 我想我必须找到一些Python模块或者使用AJAX,只是我不知道从哪里开始。


Tags: text游戏dbagehtmltypescriptli