[英]GET and POST in same Flask method
@app.route('/predict', methods=['GET', 'POST'])
def predict1():
# radio = 0
if request.method == 'POST':
value = request.get_json()
if(value['radioValue'] == 'word'):
radio = 0
return "ok"
elif(value['radioValue'] == 'sentence'):
radio = 1
return "ok"
else:
if(radio==0):
lists = ["my","word"]
elif(radio==1):
lists = ["my","sentence"]
return jsonify({'prediction': lists})
您好,我是 Flask 和 web 開發的新手。 所以,這是我的問題,我得到了兩個名為單詞和句子的單選按鈕值。 我想傳遞lists = ["my","word"]
if value is word else lists = ["my","sentence"]
。
但是這里 jsonify() 沒有返回任何東西。 那么我在這里做錯了什么? 盡管如果我在 if-else 塊之外聲明 radio 變量,它會返回列表,如您所見,我將它們注釋掉了。 此外,如果我在帖子中沒有返回任何內容,我所做的return "ok"
即使我在 if-else 塊之外聲明 radio = 0 或 1,它也不會返回任何內容。 一個簡短的解釋將非常有幫助。
如果您檢查調試日志,您可能會看到未定義radio
的NameError
。 這是因為radio
是一個局部變量,而不是您可能想要的 session 變量。
要在 Flask 中存儲變量以供進一步使用,您需要使用sessions 。
from flask import session
@app.route('/predict', methods=['GET', 'POST'])
def predict1():
if request.method == 'POST':
value = request.get_json()
if(value['radioValue'] == 'word'):
session["radio"] = 0
return "ok"
elif(value['radioValue'] == 'sentence'):
session["radio"] = 1
return "ok"
else:
if(session["radio"]==0):
lists = ["my","word"]
elif(session["radio"]==1):
lists = ["my","sentence"]
return jsonify({'prediction': lists})
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.