/ Presmerovanie na externú doménu v banke - python, presmerovanie, banka

Presmerovanie na externú doménu v jazyku Flask - python, presmerovanie, banka

Píšem veľmi jednoduchú bankovú aplikáciu (URLskrátenie), ktoré by mali byť schopné presmerovať určité požiadavky na iné ľubovoľné domény. Mám však problémy s presmerovaním. Táto stiahnutá verzia, napríklad, nefunguje:

from app import app, db
from flask import abort, redirect

@app.route("/")
def index():
return "Hello, world"

@app.route("/favicon.ico")
def favicon():
abort(404)

@app.route("/<slug>")
def redirect(slug):
return redirect("http://google.com/")

Možno naivne som očakával, že toto presmerovanie na google.com, ale namiesto toho presmerovanie sa zdá, že "zachytil" od banky, a snaží sa smerovať presmerované URL späť cez presmerovač (napr. redirect(slug="http://google.com/")), kým neprežije celý priestor zásobníkarekurzia a chyby. Nemôžem sa zdať, prečo by sa to mohlo stať, alebo ako to obísť, ale ja by som naozaj ocenil ukazovateľ správnym smerom.

odpovede:

2 pre odpoveď č. 1

Problém je v tejto funkcii:

@app.route("/<slug>")
def redirect(slug):
return redirect("http://google.com/")

Funkciu ste pomenovali redirect(), takže v rozsahu funkcie pri volaní return redirect(...) toto sa interpretuje ako rekurzívne volanie, pretože funkcia zobrazenia zatemňuje funkciu banky s rovnakým názvom a adresa URL, ktorú odovzdáte, je mapovaná na slug argument v rekurzívnom volaní.

Zmeňte názov funkcie zobrazenia z redirect() na niečo iné a váš kód bude fungovať v poriadku.