Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/google-app-engine/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 属性错误:';主处理器&x27;对象没有属性'_渲染模板';_Python_Google App Engine_Jinja2_Webapp2 - Fatal编程技术网

Python 属性错误:';主处理器&x27;对象没有属性'_渲染模板';

Python 属性错误:';主处理器&x27;对象没有属性'_渲染模板';,python,google-app-engine,jinja2,webapp2,Python,Google App Engine,Jinja2,Webapp2,我有一个关于谷歌应用程序引擎(python)的问题。我找不到问题,但不知怎么的,它并没有按预期的那样工作。错误消息是 self.response.out.write(self._render_template('main.html',template_context)) AttributeError: 'MainHandler' object has no attribute '_render_template' 我的代码如下。有什么问题 import webapp2 import os im

我有一个关于谷歌应用程序引擎(python)的问题。我找不到问题,但不知怎么的,它并没有按预期的那样工作。错误消息是

self.response.out.write(self._render_template('main.html',template_context))
AttributeError: 'MainHandler' object has no attribute '_render_template'
我的代码如下。有什么问题

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文件。
版本:最新的您已经在
get
方法中的if语句中定义了
\u render\u template
方法

不要那样做;在与
get
post
相同的级别定义它


另外,修复最后一行:
returntemplate.render(…)

添加此BaseHandler:非常感谢!我得到了它!
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