Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

298
Visualizações
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 Respostas
Responde à pergunta

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 Relatório

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda