0

Flask、webapp2、Pyramid などの Python Web アプリケーション フレームワークでは、各ルート処理関数が独自の py ファイルを持つにはどうすればよいでしょうか? これらすべての機能を 1 つのファイル構造に積み上げたくありません。Flask、webapp2、および Pyramid でこれを機能させるにはどうすればよいですか?

ありがとうございました。

4

2 に答える 2

2

フラスコとピラミッド(webapp2については知りませんが、おそらく同じです)では、ルート処理関数(ビューと呼びましょう)は関数にすぎず、アプリレジストリに登録されています。


フラスコでは、登録する限り、ビューをどこにでも置くことができます:

app.py :

from flask import Flask
app = Flask(__name__)

view.py :

from app import app
@app.route("/")
def hello():
    return "Hello World!"

main.py :

from app import app
if __name__ == "__main__":
    app.run()

ピラミッドも同じ。詳細には触れません。登録方法は異なりますが、考え方は同じです。しかし、登録さえすれば、どこにでもあります。ビューを登録する方法は 2 つあります。

  • using add_view: 最初の引数は、関数へのドット パスです。どこにでも置いて、正しいパスをここに置いてください。
  • Using scan: 最初の引数は、ビューを見つけるためにスキャンされるパッケージです。すべてのビューがパッケージとそのサブパッケージに含まれていることを確認するだけで、すべてが機能します。
于 2012-06-15T09:19:07.307 に答える
1

Pythonが特定の場所で関数を期待している場合は、他のファイルから自分で関数をインポートできます。

たとえば、Webフレームワークが関数をインポートする場合code.py

def a():
    pass

def b():
    pass

def c():
    pass

code.py次に、他の場所から関数をインポートすることにより、次のように置き換えることができます。

from mycode.somewhere import a, b
from mycode.some.other.place import c

Webフレームワークに関する限り、関数はcode.pyまだ含まれていますが、コードは確かに別の方法で編成できます。abc

于 2012-06-15T09:15:59.803 に答える