Wpis z mikrobloga

Hej Mirki od #python i #flask :)

Może pytanie dość trywialne, ale niestety nie mogę sobie z tym poradzić.

Mam we #flask route:
@app.route('/page/', methods=['GET'])
I wszystko jest ok.
Natomiast chciałbym jeszcze dodać ścieżkę tylko dla '/page', która będzie redirectem do index, czyli jak myślałem że to zrobić:

@app.route('/page/', methods=['GET'])
@app.route('/page', methods=['GET'])
def page(project):
if project:
return render_template(pages/{project}.html')
else:
return redirect(url_for('index'))

folder pages zawiera teplatki z project, ale 'page' jako takiego nie ma, chcę żeby wchodzic na localhost:5000/page/ zadziałał redirect do 'index'

Jak można to zrobić?
  • 9
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@sokytsinolop: czy return nie powinien działać jako zwrotka funkcji?
Tak czy inaczej, nie działa:

@app.route('/page/', methods=['GET'])
def page(project):
return render_template(f'projects/{project}.html')
  • Odpowiedz
@sokytsinolop: To w sumie mógłbyć dobry ruch :D Natomiast teraz, gdy mam dwa dekoratory i dwie funkcje do page i page/project to dostaję błąd:
AssertionError: View function mapping is overwriting an existing endpoint function: page
  • Odpowiedz