AttributeError: 'MainHandler' object has no attribute '_render_template'
AttributeError: 'MainHandler' object has no attribute '_render_template'
我有一个关于 Google App Engine (python) 的问题。我找不到问题所在,但不知何故无法按预期工作。错误消息是
self.response.out.write(self._render_template('main.html',template_context))
AttributeError: 'MainHandler' object has no attribute '_render_template'
我的代码是below.What有问题吗?
import webapp2
import os
import jinja2
from google.appengine.api import users
from models import Note
jinja_env = jinja2.Environment(loader = jinja2.FileSystemLoader(os.path.dirname(__file__)))
class MainHandler(webapp2.RequestHandler):
def get(self):
user = users.get_current_user()
if user is not None:
logout_url = users.create_logout_url(self.request.uri)
template_context = {
'user':user.nickname(),
'logout_url':logout_url,
}
def _render_template(self,template_name, context=None):
if context is None:
context = {}
template = jinja_env.get_template(template_name)
return template.rendet(context)
self.response.out.write(self._render_template('main.html',template_context))
else:
login_url = users.create_login_url(self.request.uri)
self.redirect(login_url)
def post(self):
user = users.get_current_user()
if user is None:
self.error(401)
note = Note(parent=ndb.Key("User",user.nickname()),title=self.request.get('title'),content=self.request.get('content'))
note.put()
logout_url = users.create_logout_url(self.request.uri)
template_context = {
'user': user.nickname(),
'logout_url':logout_url,
}
template = jinja_env.get_template('main.html')
self.response.out.write(template.render(template_context))
app = webapp2.WSGIApplication([('/', MainHandler)], debug=True)
下面是我的 yaml 文件。
application: MYAPPLICATION
version: 1
runtime: python27
api_version: 1
threadsafe: yes
handlers:
- url: /favicon\.ico
static_files: favicon.ico
upload: favicon\.ico
- url: .*
script: main.app
libraries:
- name: webapp2
version: "2.5.2"
- name: jinja2
版本:最新
您已经在 get
方法的 if 语句中定义了 _render_template
方法。
不要那样做;将其定义为与 get
和 post
.
相同的级别
此外,修正最后一行:return template.render(...)
我有一个关于 Google App Engine (python) 的问题。我找不到问题所在,但不知何故无法按预期工作。错误消息是
self.response.out.write(self._render_template('main.html',template_context))
AttributeError: 'MainHandler' object has no attribute '_render_template'
我的代码是below.What有问题吗?
import webapp2
import os
import jinja2
from google.appengine.api import users
from models import Note
jinja_env = jinja2.Environment(loader = jinja2.FileSystemLoader(os.path.dirname(__file__)))
class MainHandler(webapp2.RequestHandler):
def get(self):
user = users.get_current_user()
if user is not None:
logout_url = users.create_logout_url(self.request.uri)
template_context = {
'user':user.nickname(),
'logout_url':logout_url,
}
def _render_template(self,template_name, context=None):
if context is None:
context = {}
template = jinja_env.get_template(template_name)
return template.rendet(context)
self.response.out.write(self._render_template('main.html',template_context))
else:
login_url = users.create_login_url(self.request.uri)
self.redirect(login_url)
def post(self):
user = users.get_current_user()
if user is None:
self.error(401)
note = Note(parent=ndb.Key("User",user.nickname()),title=self.request.get('title'),content=self.request.get('content'))
note.put()
logout_url = users.create_logout_url(self.request.uri)
template_context = {
'user': user.nickname(),
'logout_url':logout_url,
}
template = jinja_env.get_template('main.html')
self.response.out.write(template.render(template_context))
app = webapp2.WSGIApplication([('/', MainHandler)], debug=True)
下面是我的 yaml 文件。
application: MYAPPLICATION
version: 1
runtime: python27
api_version: 1
threadsafe: yes
handlers:
- url: /favicon\.ico
static_files: favicon.ico
upload: favicon\.ico
- url: .*
script: main.app
libraries:
- name: webapp2
version: "2.5.2"
- name: jinja2
版本:最新
您已经在 get
方法的 if 语句中定义了 _render_template
方法。
不要那样做;将其定义为与 get
和 post
.
此外,修正最后一行:return template.render(...)