Маршрутизация webapp2 не может маршрутизироваться к обработчику — ошибка 404

Для проекта блога я пытаюсь установить разные обработчики webapp2 для разных URL-адресов. Одним из них является URL-адрес «постоянной ссылки» сообщения (доступ к которому осуществляется по идентификатору сообщения). Другой - это URL-адрес для удаления указанного сообщения. Когда я пытаюсь перейти по этому адресу, я получаю пустую страницу, а консоль AppEngineLauncher говорит:

INFO    2014-01-20 08:08:42,574 module.py:612] default: "GET /del/5066549580791808 HTTP/1.1" 404 -

Это код для части обработчиков моей программы:

application = webapp2.WSGIApplication([ ('/newpost', NewPost),     #works OK
                                        ('/([0-9]+)', PermaLink),  #works OK 
                                        ('/del/([0-9]+)', Delete), #won't work!!!
                                        ('/', Front)], debug=True) #works OK

Если у кого-то есть какая-то информация об этом, я был бы признателен. Я искал решение, но тот факт, что я не получаю сообщения об ошибке, и это не кажется (по крайней мере мне) бессмысленным, делает его намного сложнее.

РЕДАКТИРОВАТЬ: файл app.yaml:

application: blogapp
version: 1
runtime: python27
api_version: 1
threadsafe: true

handlers:
- url: /.*
  static_dir: static

- url: /.*
  script: base.application

libraries:
- name: jinja2
  version: latest

Класс Delete — это тривиальный код для тестирования, например:

class Delete(Base):  #Base is my base RequestHandler
    def get(self, s):
        self.response.write(s)

Я даже пытался сопоставить URL-адреса '/del/([0-9]+)' с тем же классом PermaLink, и все равно не работает.


person alepeino    schedule 20.01.2014    source источник
comment
Выложите свой файл app.yaml, пожалуйста   -  person Jimmy Kane    schedule 20.01.2014
comment
Кроме того, вы делаете что-нибудь внутри обработчика Delete, что может привести к ошибке 404?   -  person Daniel Roseman    schedule 20.01.2014


Ответы (1)


Ничего, это решаемо. Я привел в порядок файл yaml, и теперь все работает правильно.

application: blogapp
version: 1
runtime: python27
api_version: 1
threadsafe: true

handlers:
- url: /static
  static_dir: static

- url: (/.*)*
  script: base.application

libraries:
- name: jinja2
  version: latest
person alepeino    schedule 21.01.2014