Warum leitet sich mein Flask -Login -Link gelegentlich zu /anstelle /auth /login aus?Python

Python-Programme
Anonymous
 Warum leitet sich mein Flask -Login -Link gelegentlich zu /anstelle /auth /login aus?

Post by Anonymous »

Ich arbeite an einer Flask -Anwendung, die Blaupausen für die modulare Routenorganisation verwendet. Ich habe eine Hauptplantage, die der Indexseite dient, und einen Auth -Blaupause für Authentifizierungsrouten, einschließlich A /Author /Anmeldesoute. Der Link zur Anmeldeseite ist in einer Jinja2-Vorlage wie folgt eingerichtet: < /p>

Code: Select all

[url={{ url_for(]Login[/url]
< /code>
Erwartete Verhalten:
Wenn ich auf den Link "Login" klicke, sollte es mich zuverlässig auf /auth/login.
Ausgabe bringen:
Gelegentlich, anstatt um /auth /login zu umleiten, braucht es mich zu /(root) oder nimmt /? zur URL. Das [url=viewtopic.php?t=20324]Problem[/url] bleibt in verschiedenen Browsern und sogar im Inkognito-Modus bestehen, was darauf hindeutet, dass es sich nicht um ein Caching-Problem handelt.app.register_blueprint(main)
app.register_blueprint(auth, url_prefix='/auth')
< /code>
bestätigte url_for output:
Drucken url_for ('auth.login') in meinem Code gibt immer die richtige URL aus ( /auth /login), daher scheint die Pfadgenerierung korrekt zu sein. Methode: < /p>
@app.before_request
def log_request_info():
print(f"Path: {request.path}, Method: {request.method}")
< /code>
Manchmal loget dies den Pfad als /ab, während er manchmal korrekt protokolliert /auth/login.
überprüft auf Ausleitungsschleifen:
Ich habe meinen Auth.Login -Ansicht überprüft, um sicherzustellen, dass es in einem Fall der Stanze keine bedingte Ausleitung /
the cache the cache the cache the cache gibt. Umleitungen, aber das [url=viewtopic.php?t=20324]Problem[/url] bleibt auch im Inkognito -Modus bestehen. Könnte es etwas in meinem Setup oder in meiner Anfrage geben, das zu /unter bestimmten Bedingungen umleiten würde?auth: Blueprint = Blueprint('auth', __name__, template_folder='templates')

@auth.route('/login', methods=['GET', 'POST'])
def login() -> werResponse | str:
try:
form: LoginForm = LoginForm()
if request.method == 'POST' and form.validate_on_submit():
user: User = db.session.query(User).filter(User.nick == form.nick.data).first() # type: ignore[attr-defined]
if user and check_password_hash(user.password, form.password.data):
login_user(user)
return redirect(url_for('main.index'))
else:
flash('Wrong nick or password!')
except TemplateNotFound:
flash(f'Error{form.errors}')
finally:
return render_template('login.html', login=True, form=form)

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post