アプリケーションの拡張 - ピラミッド/パイロン/パイソン
質問
アプリケーションの拡張に関する簡単な質問
「メインアプリケーション」があるとしましょう。このアプリケーションでは、_init_.pyファイルに以下があります。
config.add_route('image_upload', '/admin/image_upload/',
view='mainapp.views.uploader',
view_renderer='/site/upload.mako')
そして、views.pyで私は持っています:
def uploader(request):
# some code goes here
return {'xyz':xyz}
ここで、新しいアプリケーションを作成し、上記のビューとルートを使用して拡張したいときは次のとおりです。
新しいアプリケーション_init_.pyファイルでは、config.add_routeコードを手動でコピーします。
config.add_route( 'image_upload', '/admin/image_upload/',
view='mainapp.views.uploader',
view_renderer='mainapp:templates/site/upload.mako'
)
そして、それは私がする必要があることはすべてですか?これから、私のアプリケーションはメインアプリケーションからビューとテンプレートを使用できるか、それとも他の何かが欠けているのでしょうか?
読んでくれてありがとう!
解決
これを行うためにコードをコピーする必要はありません。使用 configurator.include 新しいアプリケーションに「メインアプリケーション」構成を含める方法。ドキュメントでは、これを非常によく説明しています ここ と ここ, 、しかし、本質的には、メインアプリの構成を呼び出し可能なものに宣言する場合:
def main_app_config(config):
config.add_route('image_upload', '/admin/image_upload/',
view='mainapp.views.uploader',
view_renderer='/site/upload.mako')
次に、このような新しいアプリの構成にメインアプリを含めることができます。
from my.main.app import main_app_config
# do your new application Configurator setup, etc.
# then "include" it.
config.include(main_app_config)
# continue on with your new app configuration
所属していません StackOverflow