2015-12-20 10 views

Odpowiedz

4

Domyślna handler gdy zasób nie pasuje to path_not_found responder:

Ale jak widać w sposobie falcon API _get_responder, to nie może być ręczne bez jakiejś małpy łatania.

O ile widzę, istnieją dwa różne sposoby korzystania z funkcji obsługi niestandardowe:

  1. podklasą klasy API i zastąpić metodę _get_responder więc wywołuje niestandardowego obsługi
  2. Użyj domyślnego trasa, która pasuje do dowolnej trasy, jeśli żadna z aplikacji nie jest dopasowana. Prawdopodobnie wolisz korzystać z sink zamiast trasy, więc przechwytujesz dowolną metodę HTTP (GET, POST ...) przy użyciu tej samej funkcji.

Polecam drugą opcję, ponieważ wygląda o wiele ładniej.

Twój kod będzie wyglądać następująco:

import falcon 

class HomeResource: 
    def on_get(self, req, resp): 
     resp.body = 'Hello world' 

def handle_404(req, resp): 
    resp.status = falcon.HTTP_404 
    resp.body = 'Not found' 

application = falcon.API() 
application.add_route('/', HomeResource()) 
# any other route should be placed before the handle_404 one 
application.add_sink(handle_404, '') 
Powiązane problemy