簡體   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