[英]How to use a html form to send data to javascript to be saved as a variable
[英]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.