0

いくつかの GAE アプリを Python 2.5 から 2.7 に移行中です。Django テンプレート (任意のバージョン) をこのバージョンの Python にインポートするのは、はるかに難しいようです。私は Google の T への指示に従い、ウェブで助けを求めましたが、最終的には失敗しました。これが私が試したことです。皆さんの誰かが私を助けることができるかどうか疑問に思っていました! 前もって感謝します。

app.yaml で:

libraries:
- name: django
  version: "1.2"

main.yaml で:

import os
# specify the name of your settings module
os.environ['DJANGO_SETTINGS_MODULE'] = 'myapp.settings'
import django.core.handlers.wsgi
app = django.core.handlers.wsgi.WSGIHandler()

メインクラス:

class Main(webapp2.RequestHandler):
  def get(self):
    self.response.out.write(template.render('index.html', None))

私が得るエラー:

NameError: グローバル名 'template' が定義されていません

興味深いことに、Jinja2 テンプレートで動作しました。ただし、すべての HTML コードは Django テンプレートを使用して記述されており、すべてを変換するには時間がかかりすぎると思います。動作する Jinja2 コードを次に示します (簡単にするために、すべて 1 つのコード ブロックにまとめています)。

libraries:
- name: jinja2
  version: latest

import jinja2
import os

jinja_environment = jinja2.Environment(
loader=jinja2.FileSystemLoader(os.path.dirname(__file__)))

class Main(webapp2.RequestHandler):
  def get(self):
    template = jinja_environment.get_template('index.html')
    self.response.out.write(template.render())
4

1 に答える 1

2

あなたtemplateは未定義です。次からインポートする必要がありますwebapp

from google.appengine.ext.webapp import template

webapp2との後方互換性はありますが、まだwebappテンプレート エンジンを使用する必要があります。テンプレートの使用 を参照してください。webapp

于 2012-11-29T09:54:08.477 に答える