0
webapp2에서 오류가 발생하여 여기에서 문제가 될 수 있습니다.AttributeError : 'NoneType'객체에 'route'및 webapp2 속성이 없습니다.
ERROR 2011-12-13 11:17:19,059 webapp2.py:1528] 'NoneType' object has no attribute 'route'
Traceback (most recent call last):
File "/home/user/sdk/google_appengine/lib/webapp2/webapp2.py", line 1511, in __call__
rv = self.handle_exception(request, response, e)
File "/home/user/sdk/google_appengine/lib/webapp2/webapp2.py", line 1505, in __call__
rv = self.router.dispatch(request, response)
File "/home/user/sdk/google_appengine/lib/webapp2/webapp2.py", line 1253, in default_dispatcher
return route.handler_adapter(request, response)
File "/home/user/sdk/google_appengine/lib/webapp2/webapp2.py", line 1077, in __call__
return handler.dispatch()
File "/home/user/sdk/google_appengine/lib/webapp2/webapp2.py", line 526, in dispatch
method_name = request.route.handler_method
AttributeError: 'NoneType' object has no attribute 'route'
ERROR 2011-12-13 11:17:19,060 wsgi.py:186]
Traceback (most recent call last):
File "/home/user/sdk/google_appengine/google/appengine/runtime/wsgi.py", line 174, in Handle
result = handler(self._environ, self._StartResponse)
File "/home/user/sdk/google_appengine/lib/webapp2/webapp2.py", line 1519, in __call__
response = self._internal_error(e)
File "/home/user/sdk/google_appengine/lib/webapp2/webapp2.py", line 1511, in __call__
rv = self.handle_exception(request, response, e)
File "/home/user/sdk/google_appengine/lib/webapp2/webapp2.py", line 1505, in __call__
rv = self.router.dispatch(request, response)
File "/home/user/sdk/google_appengine/lib/webapp2/webapp2.py", line 1253, in default_dispatcher
return route.handler_adapter(request, response)
File "/home/user/sdk/google_appengine/lib/webapp2/webapp2.py", line 1077, in __call__
return handler.dispatch()
File "/home/user/sdk/google_appengine/lib/webapp2/webapp2.py", line 526, in dispatch
method_name = request.route.handler_method
AttributeError: 'NoneType' object has no attribute 'route'
GAE의 최신 SDK 버전 (1.6.0)을 사용 중입니다.
내 코드는 다음과 같습니다
애플리케이션 제목을
application: test-app
version: 1
runtime: python27
api_version: 1
threadsafe: true
handlers:
- url: /favicon\.ico
static_files: static/images/favicon.ico
upload: static/images/favicon\.ico
- url: .*
script: main.site_app
login: required
libraries:
- name: django
version: "1.2"
main.py
import os
os.environ['DJANGO_SETTINGS_MODULE'] = 'settings'
import webapp2
import urls
site_app = webapp2.WSGIApplication(urls.SITE_URLS, debug=True)
urls.py
import webapp2
import handler
SITE_URLS = [
webapp2.Route(r'/', handler.TestHome),
webapp2.Route(r'/test/<test_key:\w+>', handler.TestPage)
]
basehandler.py
,451,515,import os
import webapp2
from django import template
class BaseHandler(webapp2.RequestHandler):
def __init__(self, *args, **kwargs):
self.tdict = {}
def render(self, template_file):
template_path = os.path.join(os.path.dirname(__file__),
'templates',
template_file)
t = template.Template(file(template_path,'rb').read())
self.response.write(t.render(template.Context(self.tdict)))
handler.py
import os
from basehandler import BaseHandler
class TestHome(BaseHandler):
def get(self):
def get(self):
self.render('browse.html')
class TestPage(BaseHandler):
def get(self, test_key):
self.tdict['test_key'] = test_key
self.render('browse.html')
템플릿/browse.html 내가 잘못 뭐하는 거지
<html>
<head>
<title>Success!</title>
</head>
<body>
Success!
{% if test_key %}- {{ test_key }}{% endif %}
</body>
</html>
? 어떤 도움이나 제안도 대단히 감사합니다!
고마워요! 그게 문제를 해결했습니다 :) 당신의 도움에 감사드립니다! – reallife
자신 만의'__init__'에서'initialize'를 호출해서는 안됩니다 - 부모 생성자를'super (BaseHandler, self) .__ init __ (request, response)'로 호출해야합니다. 항상 항상 부모 생성자를 호출합니다. –
@NickJohnson - 그 [webapp2 설명서] (http://webapp-improved.appspot.com/guide/handlers.html#overriding-init)에서 말한 내용이 아닙니다. 업데이트해야합니까? –