Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

295
Views
Anular las plantillas predeterminadas de Flask-User/Flask-Login

He encontrado una pregunta similar aquí , pero la respuesta no parece funcionar para mí.

Uso Flask User (que amplía Flask Login, creo) y en su mayor parte funciona muy bien. He creado mis propias plantillas completamente nuevas para iniciar sesión y registrarse, en lugar de usar las proporcionadas. Siguiendo la documentación , he colocado estas plantillas en templates/flask_user/login.html , templates/flask_user/register.html y así sucesivamente.

También configuré USER_UNAUTHENTICATED_ENDPOINT = "login" y USER_UNAUTHORIZED_ENDPOINT = "login" en mi archivo de configuración, donde inicio de login es el nombre de mi ruta de inicio de sesión.

El problema es que si estoy desconectado e intento acceder directamente a una página que requiere que el usuario inicie sesión, se me enviará a http://localhost:5000/user/sign-in y se mostrará Flask-Login sesión en la página de inicio de sesión. Dos cosas están mal con esto: 1) Esta no es la ruta correcta para iniciar sesión y 2) Esta no es la plantilla correcta para iniciar sesión.

Estaría agradecido por cualquier ayuda que alguien pueda sugerir para esto, por favor.

EDITAR:

Código de __init__.py que inicializa la aplicación y el LoginManager:

 app = Flask(__name__) @app.context_processor def inject_production_status(): return dict(production=True) # Initialise flask_login login = LoginManager(app) login.login_view = 'login' login.refresh_view = "login" login.needs_refresh_message = "Please sign in again to access this page"

UserManager se define en la parte inferior de models.py :

 user_manager = UserManager(app, db, User)
over 4 years ago · Santiago Trujillo
2 answers
Answer question

0

UserManager debe inicializarse en __init__.py y no en models.py . UserManager se encargará de la inicialización de LoginManager .

Debe reemplazar en __init__.py :

 # Initialize flask_login login = UserManager (app, db, User) login.login_view = 'login' login.refresh_view = "login" login.needs_refresh_message = "Please sign in again to access this page"

por

 # Initialize flask_user from .models.user_models import User user_manager = UserManager (app, db, User) ... # login is now accessible by user_manager.login_manager

(Y eliminarlo de models.py )

Aquí hay un ejemplo: https://github.com/lingthio/Flask-User-starter-app/blob/master/app/ init .py

Irrelevante para la pregunta, pero por si acaso: a largo plazo, será más fácil para usted echar un vistazo a app.config.from_object para manejar más fácilmente las configuraciones de producción y desarrollo.

over 4 years ago · Santiago Trujillo Report

0

Implementé la sugerencia de @JBLaf, pero esto no resolvió el problema. Me di cuenta de que la página de inicio de sesión predeterminada que se me presentaba no era en realidad la plantilla login.html flask-login , sino su plantilla login_auth0.html . Esta era una plantilla que no había reemplazado en mi propia carpeta de usuario de flask_user , ya que no lo creí necesario.

Dos formas de resolver esto:

  1. Establezca USER_ENABLE_AUTH0 = False . Esto hace que use la plantilla login.html , que es mi propia plantilla personalizada. Sin embargo, esto me causó problemas en el futuro porque permito inicios de sesión SSO. Así que la mejor solución fue:
  2. Cree un archivo login-auth0.html en mi carpeta templates/flask_user , que contenga solo la línea {% include 'flask_user/login.html' %} .

Ahora Flask-User intentará redirigir a la plantilla auth0, que en su lugar representará mi plantilla login.html .

over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!