2

jinja2GAE の URL への応答として HTML ページを生成する方法を知っています( https://developers.google.com/appengine/docs/python/gettingstartedpython27/templates )。

jinja2実際のxmlファイルを作成してサーバーに保存するために使用する必要があります。

と呼ばれるツールを使用している人の例utilは、http://blog.notdot.net/2009/10/Blogging-on-App-engine-part-9-Sitemaps-and-reviewまたはhttps://github.com/にあります。 Arachnid/bloggart/blob/part9/static.py (47 行目)。

UTIL の例のスニペット (彼がサイトマップを作成していることは気にしないでください):

rendered = utils.render_template('sitemap.xml', {'paths': paths})
set('/sitemap.xml', rendered, 'application/xml', False)

そのようなことができJinja2ますか?

次のような多くのことを試しました。

data = jinja_environment.get_template('for_xml.html')
fo = open("/myfile.xml","w+")
fo.write(data)
fo.close()

これまでのところ、使用するw+wbエラーが発生するか:

File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/tools/dev_appserver_import_hook.py", line 632, in __init__
raise IOError('invalid mode: %s' % mode)
IOError: invalid mode: w+

例のように使用するsetと、4 ではなく 1 つのパラメーターが必要であると表示されます。UTILset

4

3 に答える 3

1

ファイルを GAE サーバーに書き込むことはできませんが、ファイルをblobstoreまたはCloud Storageに書き込むことはできます。書き込み先のファイルのようなオブジェクトを提供するため、API を参照してください。

ps: set を使用するとエラーが発生します。これは、ユーザーが定義した関数を参照しており、コードにその定義が含まれていないと推測されるため、実際にはパラメーターを 1 つだけ取る set コンストラクターを使用しています。

于 2012-12-21T18:54:47.727 に答える
0

動的なサイトマップが必要な場合は、その場で作成してみませんか。2 番目: Jinja2 では、XML テンプレートも使用できます = XML テンプレートを読み取ることができ、html だけではありません。

結論:「sitemap.xml」の動的作成を提供する非静的ハンドラーを作成すると、ジンジャはsitemap.xmlの結果をレンダリングします。

于 2012-12-21T19:52:36.193 に答える