簡體   English   中英

GET 和 POST 在同一個 Flask 方法中

[英]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,它也不會返回任何內容。 一個簡短的解釋將非常有幫助。

如果您檢查調試日志,您可能會看到未定義radioNameError 這是因為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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM