2010-11-20 7 views
1

Google 애플 리케이션 엔진에 django를 사용하는 간단한 응용 프로그램이 있는데 두 개 클래스가 거의 같지만 그 중 하나가 TypeError와 충돌합니다.Google 응용 프로그램 엔진 TypeError 문제

Traceback (most recent call last): 
    File "C:\Program Files (x86)\Google\google_appengine\google\appengine\tools\dev_appserver.py", line 3211, in _HandleRequest 
    self._Dispatch(dispatcher, self.rfile, outfile, env_dict) 
    File "C:\Program Files (x86)\Google\google_appengine\google\appengine\tools\dev_appserver.py", line 3154, in _Dispatch 
    base_env_dict=env_dict) 
    File "C:\Program Files (x86)\Google\google_appengine\google\appengine\tools\dev_appserver.py", line 527, in Dispatch 
    base_env_dict=base_env_dict) 
    File "C:\Program Files (x86)\Google\google_appengine\google\appengine\tools\dev_appserver.py", line 2404, in Dispatch 
    self._module_dict) 
    File "C:\Program Files (x86)\Google\google_appengine\google\appengine\tools\dev_appserver.py", line 2314, in ExecuteCGI 
    reset_modules = exec_script(handler_path, cgi_path, hook) 
    File "C:\Program Files (x86)\Google\google_appengine\google\appengine\tools\dev_appserver.py", line 2212, in ExecuteOrImportScript 
    script_module.main() 
    File "C:\Development\fuluus\momadthenomad\main.py", line 20, in main 
    run_wsgi_app(application) 
    File "C:\Program Files (x86)\Google\google_appengine\google\appengine\ext\webapp\util.py", line 97, in run_wsgi_app 
    run_bare_wsgi_app(add_wsgi_middleware(application)) 
    File "C:\Program Files (x86)\Google\google_appengine\google\appengine\ext\webapp\util.py", line 115, in run_bare_wsgi_app 
    result = application(env, _start_response) 
    File "C:\Program Files (x86)\Google\google_appengine\google\appengine\ext\webapp\__init__.py", line 500, in __call__ 
    handler = handler_class() 
TypeError: NotFoundPage() takes exactly 1 argument (0 given) 

내 클래스는이 (main.py)과 같습니다

import os 
import datetime 

from google.appengine.ext import webapp 
from google.appengine.ext.webapp import template 
from google.appengine.ext.webapp.util import run_wsgi_app 

class BasePage(webapp.RequestHandler): 
    def initialize(self, request, response): 
     webapp.RequestHandler.initialize(self, request, response) 
     dir = os.path.join(os.path.dirname(__file__), "../templates") 
     self.template_path = os.path.abspath(dir) 

    def render_to_response(self, page, template_values): 
     page_path = os.path.join(self.template_path, page) 
     self.response.out.write(template.render(page_path, template_values)) 


class DefaultPage(BasePage): 
    def get(self): 
     visitor = Visitor() 
     visitor.ip = self.request.remote_addr 
     visitor.put() 

     page = Page() 
     page.title = "MY PORTAL" 
     page.subtitle = "Home" 
     page.name = self.request.path 

     visitors_query = Visitor.all().order('-added_on') 
     visitors = visitors_query.fetch(20) 

     self.render_to_response("main.html", 
     { 
      "page": page, 
      "visitors": visitors, 
     }) 


def NotFoundPage(BasePage): 
    def get(self): 
     page = Page() 
     page.title = "MY PORTAL" 
     page.subtitle = "Not Found" 
     page.name = self.request.path 

     self.render_to_response("empty.html", 
     { 
      "page": page, 
     }) 

application = webapp.WSGIApplication(
            [('/', DefaultPage), 
            ('/index.html', DefaultPage), 
            ('/.*', NotFoundPage), 
            ], 
            debug=True) 

def main(): 
    run_wsgi_app(application) 

if __name__ == "__main__": 
    main() 

I /index.html를 갈 때, 모든 게 완벽하게 작동합니다. 하지만 /not-found.html에 갈 때 오류가 발생하여 충돌합니다. 나는이 스크립트가 무엇이 잘못되었는지 알 수 없다. 어쩌면 나는 무엇인가를 간과하고있다. 도와주세요.

답변

6
def NotFoundPage(BasePage): 

은 다음과 같아야합니다

class NotFoundPage(BasePage): 
+0

당신은 1 : – Tauquir

+0

세상에 감사 풍어를받을 자격이! –

관련 문제