繁体   English   中英

如何将可变数据表单html发送到烧瓶

[英]How to send variable data form html to flask

我想将可变数据表单 html 发送到烧瓶
这是我的 html js 代码。
我不能以这种方式将可变数据发送到烧瓶。

<script>
        var data = "shan";
        window.location.href='{{ url_for( "move_forward" , title=data) }}';
</script>

但是当我使用以下方式时,我可以发送它

<script>
        window.location.href='{{ url_for( "move_forward" , title="shan") }}';
</script>

但最后我想为变量分配一些值,并将其发送到烧瓶。
我该怎么做

 @app.route("/move_forward/<title>", methods=['GET', 'POST'])
        def move_forward(title):
             print(title)

Jinja 模板(使用{{ ... }}的部分)不是 JavaScript。

当您调用render_template'{{ url_for( "move_forward" , title="shan") }}'会被替换为'/move_forward/shan'类的东西,这就是客户端收到的内容。

当您执行'{{ url_for( "move_forward" , title=data) }}' Flask/Jinja 不知道data是什么,因为它不与 JavaScript 交互,它只是试图替换一个字符串。

你可以改用 JavaScript 和 Jinja 的混合来让它工作:

<script>
    var baseUrl = '{{ url_for("move_forward") }}';
    var data = "shan";
    window.location.href = baseUrl + "/" + data;
</script>

谢谢@Henry 的回答,我会仔细研究它并进行一些修改以使其正常工作。

在 HTML js 脚本中,我修改如下

var baseUrl = '{{ url_for("move_forward") }}';
var data = "shan";
window.location.href = baseUrl + "?title=" + data;

然后我修改 Flask 代码,如下所示。

@app.route("/move_forward", methods=['GET', 'POST'])
        def move_forward():
            if request.method == 'GET':
                title = request.args.get('title')

现在它完美地工作了。 谢谢

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM