繁体   English   中英

如何在路由函数中为 Flask app.config 提供一个参数?

[英]How to us an arg given to Flask app.config inside a route function?

我的 webapp 从一个函数内部运行,因为我与其他函数多线程(只有 1 个烧瓶实例),我的问题是: A. 将队列传递到应用程序的最佳方法是什么? B、当通过时,如何在特定路由内部使用Queue?

这是到目前为止编写的代码的相关部分,当向“/parser”发出请求时,它给出错误“全局名称‘队列’未定义”。

app = Flask(__name__)
q = Queue()
app.config['queue'] = q;

@app.route('/parser')
def Parser():
    arg = request.args.get('arg') #if key doesn't exist, returns None
    queue.put(arg)

def Run():
    app.run(debug=False, host='0.0.0.0')

if __name__ == '__main__':
    q = Queue()
    app.config['queue'] = q;
    thread = Thread(target = Run)
    thread.start()

提前致谢 :)

编辑:添加了一个可能有帮助的代码示例

from flask import Flask
from threading import Thread
from queue import Queue

app = Flask(__name__)
q = Queue()
app.config['queue'] = q;
app.config['test'] = 'testing';

@app.route('/insert/<var>')
def Insert(var):
    q = app.config['queue']
    q.put(var)
    return "Ok"

@app.route('/pop')
def Get():
    q = app.config['queue']
    return q.get()


def Run():
    app.run(debug=False, host='0.0.0.0')

if __name__ == '__main__':
    thread = Thread(target = Run)
    thread.start()

我很确定烧瓶不支持在多个线程中运行相同的应用程序实例。

我有一种感觉,这是XY 问题的一个实例,如果您在生产中部署,此页面列出了一些可以处理多个并发连接的方法。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM