我正在使用Flask构建一个非常小的单页动态网站.我想在不使用类的情况下跨函数共享变量及其值的列表.
我查看了Flask的View类,但是我觉得我的应用程序不够大,也不够复杂,无法使用Flask实现我的项目的基于类的版本.如果我正确说明我也将失去使用route装饰器的能力,并且必须使用其代理功能add_url_rule.
这也会迫使我将我的代码重构为这样的东西:
from flask.views import View
class ShowUsers(View):
def dispatch_request(self):
users = User.query.all()
return render_template('users.html', objects=users)
app.add_url_rule('/users/', view_func=ShowUsers.as_view('show_users'))
Run Code Online (Sandbox Code Playgroud)
对于变量共享,我想到了两种技术.
x = ""
def foo():
global x
x = request.form["fizz"]
def bar():
# do something with x (readable)
print(x)
def baz():
return someMadeupFunction(x)
Run Code Online (Sandbox Code Playgroud)def foo():
x = request.form["fizz"]
qux(someValue)
def qux(i):
menu = {
key0: bar,
key1: baz,
}
menu[i](x)
def bar(x):
# do something with x (readable)
print(x)
def baz(x):
return someMadeupFunction(x)
Run Code Online (Sandbox Code Playgroud)只要存储在你想要的任何东西上.
它完全符合您的需求.
from flask import g
def foo():
g.x = request.form["fizz"]
def bar():
# do something with x (readable)
print(g.x)
def baz():
return someMadeupFunction(g.x)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
882 次 |
| 最近记录: |