3

私のピラミッド アプリでは、tutorial/tutorial/pages/name.html の下にいくつかの静的な html ファイルがあります (たとえば)。これに対して呼び出し可能なビューを作成するにはどうすればよいですか? これは機能しますか?

     @view_config(renderer='view_page')
     def view_page(request):
         return {} # no values have to be passed to the template

次に、init .py ファイルで

config.add_route('view_page', 'tutorial:pages/{name}.html')

その name.html ファイルを具体的に呼び出してそのコンテンツを表示するには、 def view_page(request) 関数に何を入れる必要がありますか?

4

1 に答える 1

4

Pyramidstatic_viewは、ディレクトリからファイルを提供できるビューです。あなたが本当に説明していない部分は、これらの静的ページのURLがどのようなものかということです。たとえば、それらがすべて共通のプレフィックスの下にある場合は、static_view(オプション1)を使用できます。そうでない場合は、ページごとにビューを作成して直接提供する必要があります(オプション2)。

オプション1

url:

/foo/bar.html
/foo/baz/boo.html

静的ビュー:

config.add_static_view('/foo', 'tutorial:pages')

チュートリアル/ページ階層:

tutorial/pages/bar.html
tutorial/pages/baz/boo.html

add_static_viewは事実上、を呼び出すようなものであり、の相対的なadd_route('foo', '/foo/*subpath')役割を果たします。subpathtutorial:pages

オプション2

config.add_route('foo', '/foo')
config.add_route('bar', '/foo/bar')

@view_config(route_name='foo', renderer='tutorial:pages/foo.html.mako')
@view_config(route_name='bar', renderer='tutorial:pages/bar.html.mako')
def static_view(request):
    return {}

.makomakoレンダラーを呼び出すための接尾辞に注意してください。デフォルトではレンダラーはありませ.htmlんが、作成することはできます。

于 2013-02-06T03:56:32.073 に答える