나는 webapp2 라우팅이 쉬울 것이라고 기대했지만 분명히 (나를 위해) 그렇지 않았다.webapp2 routing 실패
이 코드는 webapp2 route fails과 비슷하지만 코드가 거의 동일하지만 webapp2.Route를 사용할 때 404 오류가 발생하고 라우팅 지연을 사용할 때 (위에서 언급 한 다른 문제의 해결책 인 경우) 나는 이 다채로운 오류 메시지가 :
ERROR 2011-12-12 17:09:25,996 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 1076, in __call__
handler = self.handler(request, response)
TypeError: __init__() takes exactly 1 argument (3 given)
INFO 2011-12-12 17:09:26,061 dev_appserver.py:2753] "GET/HTTP/1.1" 500 -
INFO 2011-12-12 17:09:26,606 dev_appserver.py:2753] "GET /favicon.ico HTTP/1.1" 200 -
내가 webapp2.Route를 사용할 수 있다면 좋을 텐데 때문에 추가 기능이 가져다 (예 : 이름). 그러나 그것은 나를 위해 일하는 것 같지 않습니다. 즉이 내 코드는 모습입니다 같은 :
애플리케이션 제목 (webapp2.Route와)
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/(\w+)$', handler.TestPage)
]
urls.py (webapp2 지연 라우팅)
import handler
SITE_URLS = [
('/', handler.TestHome),
('/test/(\w+)', handler.TestPage)
]
handler.py
import os
import webapp2
from google.appengine.ext.webapp import template
class TestHome(webapp2.RequestHandler):
def get(self):
self.response.write(template.render(
os.path.join(os.path.dirname(__file__), 'templates/browse.html'), {}
)
)
class TestPage(webapp2.RequestHandler):
def get(self, test_key):
self.response.write(template.render(
os.path.join(os.path.dirname(__file__), 'templates/browse.html'),
{'test_key': test_key}
)
)
템플릿/browse.html 내가 잘못 뭐하는 거지
<html>
<head>
<title>Success!</title>
</head>
<body>
Success!
{% if test_key %}- {{ test_key }}{% endif %}
</body>
</html>
? 어떤 도움이나 제안도 대단히 감사합니다 !! 감사!
고마워요! 그게 내 문제를 해결해 줬어. 추적에 관해서는, 내 기본 핸들러의 __init__에 * args 및 ** kwargs가 누락되어 있었기 때문에 이것은 내 편이 어리석은 실수였습니다. 당신의 도움을 주셔서 감사합니다! – reallife