[英]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.