2012-06-12 34 views
7

Uygulamam, tüm URL isteklerini @app.route ile yakalar, ancak bazen eşleşen bir jinja dosyanızın bulunmadığı kötü bir URL'ye rastlıyorum (bu, mevcut bir @app.route ile eşleşiyor). Bu yüzden bu tür istekleri bu kötü URL için 404 sayfasına yönlendirmek istiyorum.Bir 404 sayfasını nasıl oluştururum?

render_template() dönmeden önce "bir jinja dosyası var" ve "jinja dosyası yok" arasında nasıl ayrım yapılır?

şablon bulunmazsa Jinja bir istisna durumu

cevap

17

: TemplateNotFound

Bunu yerine:

def myview(): 
    return render_template(...) 

böyle bir şey yapabileceğini:

def myview(): 
    try: 
     return render_template(...) 
    except TemplateNotFound: 
     abort(404) 

Ve sonra ele Flask documentation açıklandığı gibi özel bir hata sayfası ile 404 hatası. jinja2

+0

Yahoo! dan flask ve TemplateNotFound den abort ithal etmeyi unutmayın jinja dosyası bulunamazsa render_template() öğesi gerçekten istisna döndürdünüz. İşe yarıyor. havalı cevabınız için teşekkür ederim. – hof0w

+0

Cevabınızı aşağıdaki kodlara ekleyin lütfen. 'flask import abort' dan –

İlgili konular