[英]Use a variable from a function in another function, with flask
我使用 Flask 來制作網站。
@app.route('/consulta',methods=['POST'])
def consulta():
if request.method=='POST': #Si se han enviado datos
dia = request.form['dia'] #Obtenemos los datos del formulario
videobeam = request.form['videobeam']
tablero = request.form['tablero']
hora = request.form['hora']
aa = darHora(hora)
a = aa[0] #<<<<<----- HERE IS PROBLEM
b = aa[1] #<<<<<<- HERE IS PROBLEM
cursor = db.connection.cursor()
cursor.execute("SELECT * FROM salones WHERE {0}=1 AND videobeam = '{2}' AND tablero = '{1}' AND `{3}` = 1 AND `{4}` = 1".format(dia,videobeam,tablero,a,b))
#Buscamos que coincidan con la base de datos, se pregunta por el dia de disponibilidad, si tiene videobeam y tablero
data = cursor.fetchall() #Se obtiene en una lista
cursor.close() #Se cierra la conexión
return render_template('consulta.html', datos = data) #Se visualizará los resultados, y se pasa a data como parametro
我想在另一個 function 中使用來自 function 的變量“a”和“b”,因為它們來自用戶以表單形式輸入。 問題是我不能“返回”它們,因為 flask 只允許我返回 function 的 render_template。
任何想法? 謝謝!!!
Assuming the other function is a view function associated with a different endpoint, you can simply pass these variables using Flask session. 例如:
from flask import session
@app.route('/consulta',methods=['POST'])
def consulta():
if request.method=='POST': #Si se han enviado datos
dia = request.form['dia'] #Obtenemos los datos del formulario
videobeam = request.form['videobeam']
tablero = request.form['tablero']
hora = request.form['hora']
aa = darHora(hora)
session['a'] = aa[0] #<<<<<----- HERE IS PROBLEM
session['b'] = aa[1] #<<<<<<- HERE IS PROBLEM
...
@app.route('/something')
def user_parameters():
a = session.get('a')
b = session.get('b')
...
處理此問題的一種方法是創建a
和b
全局變量:
a = None
b = None
@app.route('/consulta',methods=['POST'])
def consulta():
if request.method=='POST': #Si se han enviado datos
...
global a, b
a, b = aa[0], aa[1]
...
現在,每次調用consulta()
時,都會將a
和b
的全局值替換為新值。 在程序的其他地方,您可以執行相同的操作以獲取a
和b
的最新設置值。
請注意,如果您遇到此問題,您可能需要重新考慮為什么需要a
和b
的值來執行此操作。 它們是否與提交 POST 請求的特定用戶相關聯? 您如何在其他 function 中使用它們,以及其他 function 何時相對於這個運行?
如果您需要在各種斷開連接的 API 調用之間訪問相同的信息,但您有辦法(例如令牌)來跟蹤發出請求的用戶,我建議使用實際數據庫來存儲信息。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.