3
私は非常に小さな1ページ動的ウェブサイトを構築するために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'))
は、変数の共有のために私は2つの技術を考えました。
x = "" def foo(): global x x = request.form["fizz"] def bar(): # do something with x (readable) print(x) def baz(): return someMadeupFunction(x)
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)
別名:クラスの使用を検討する前にプロジェクトを「大規模」または「複雑」にする必要はありません。 – Hurkyl
しかし、これはFlask APIを使った私の最初のプロジェクトですが、私は自分自身を教えています。私はこれを将来のクラスベースに変換することを、学習の練習として期待しています。 – Joseph