javascript - Jinja2 : call function on click

标签 javascript python html jinja2

我正在破解一个类似 cms 的系统,该系统在前端使用 Jinja2 和 Javascript,在后端使用 Python。

我在后端实现了一些 Python 函数来处理数据库。

我想从 HTML 页面启动该功能,所以我使用了 Jinja2。

问题是片段 {% %}{{ }} 总是在加载 HTML 时被解析和处理。

我想在单击按钮或链接时执行该功能。

我怎样才能让它发挥作用?

最佳答案

Jinja2 是一个模板引擎。你错了。

您可以在一些轻量级网络框架中创建一个小应用程序,例如 FlaskBottle ,并将一些 ajax 路由路由到预期的方法。

这是一个使用 Flask 的例子:

后端.py

import os
from json import dumps
from flask import Flask, render_template

app = Flask(__name__)

@app.route("/")
def index():
    return render_template('cmd.html')

@app.route("/cmd")
def cmd():
    osname = os.uname()[3]
    print(osname)
    return dumps({'name': osname})

if __name__ == "__main__":
    app.run()

如文档中所述,模板必须位于项目文件夹内名为 template 的文件夹中。

cmd.html

<html>
    <head>
        <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.3/jquery.min.js"></script>
        <script type="text/javascript">
            function cmd(){
                $.ajax({
                    type: "GET",
                    url: "http://0.0.0.0:5000/cmd",
                    success: function (data) { 
                        $("#result").html("dfsdfds")
                  },
                });                
            }
         </script>
    </head>
    <body>
        <a href="#" onclick="return cmd();">Item</a>
        <div id="result"></div>
    </body>
</html>

要执行它,只需运行 python backend.py。打开浏览器并转到 http://127.0.0.1:500

应用程序在后端运行命令并返回结果。

关于javascript - Jinja2 : call function on click,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37346842/

相关文章:

javascript - 为 JavaScript 使用类型 ="text/plain"?

javascript - 在 Watson Assistant 中添加和编辑 JSON 数组

Python 使用 pandas 读取 Excel 中的问题

python - pygame surface.blit(bg,pos,pos) 对比。 surface.blit(bg,pos),你明白这个吗?

Python:将驼峰大小写转换为使用正则表达式分隔的空格并考虑首字母缩略词

javascript - 将 javascript 中的变量值更新为 html

javascript - 如何在 Opera Mobile、iOS、Android 等中使页面宽度等于屏幕宽度

javascript - 每隔一段时间从目录加载图像

html - 如何设置 SELECT 下拉列表中可见的最大项目数?

html - 如何在后台全屏显示 youtube 视频