Настой-бутстрап настройки Настой-охрана
Я использую Flask-security, и мне не удалось интегрировать Flask-bootstrap, чтобы настроить пользовательский интерфейс для входа, регистрации и других страниц.
Проект размещен здесь: https://github.com/fbenavides69/control-escolar
Я установил через pip пакеты и могу отобразить логин, зарегистрироваться и другие страницы, но по какой-то причине я не могу заставить их отображать загрузчик пользователя. Я следовал рекомендациям на c/p страницах безопасности в каталоге шаблонов в приложении, чтобы переопределить внешний вид, но пока не имел никакого успеха.
Может кто-нибудь указать мне, что я пропускаю?
Вот код для login_user.html:
{% extends "layout.html" %}
{% block body %}
{{super()}}
{% include "navbar.html" %}
{% block content %}
{{super()}}
{% from "security/_macros.html" import render_field_with_errors, render_field %}
{% from "security/_form_macros.html" import render_field %}
<div class="container">
{% include "security/_messages.html" %}
<h1>{{ _('Login') }}</h1>
<form action="{{ url_for_security('login') }}" method="POST" name="login_user_form">
{{ login_user_form.hidden_tag() }}
{{ render_field_with_errors(login_user_form.email) }}
{{ render_field_with_errors(login_user_form.password) }}
{{ render_field_with_errors(login_user_form.remember) }}
{{ render_field(login_user_form.next) }}
{{ render_field(login_user_form.submit) }}
</form>
{% include "security/_menu.html" %}
</div>
{% endblock content %}
{% endblock body %}
Вот это layout.html:
{% extends "bootstrap/base.html" %}
{% block html_attribs %}
lang="sp"
{% endblock %}
{% block metas %}
<meta charset="utf-8">
{% endblock %}
Вот структура файла, в которой хранятся шаблоны:
application
+-site
+-templates
+-security
+- login_user.html
+- register_user.html
Вот код для файла инициализации:
''' Flask Application Factory
Blueprint Flask application using the factory pattern,
with configuration setup and blueprint module registration
'''
from flask import Flask
from flask_bootstrap import Bootstrap
from flask_security import Security
from flask_security import SQLAlchemyUserDatastore
from flask_debugtoolbar import DebugToolbarExtension
from flask_admin import Admin
from flask_admin.contrib.sqla import ModelView
from .models import db
from .models import User
from .models import Role
from .admin import admin
def create_app():
''' create_app
input:
None
output:
app -- flask web application instance
Read configuration values in the following order:
1) default, values which can be overwritten later
2) intance, for your eyes only not stored in repo values
3) environment, selectable values from:
- development
- stagging
- production
Setup web interface with Bootstrap framework
'''
# Initialize app
app = Flask(__name__, instance_relative_config=True)
# Load default config values
app.config.from_object('config.default')
# Load instance config values not stored in repo
app.config.from_pyfile('config.py')
# Load environment config values
app.config.from_envvar('APP_CONFIG_FILE')
# Create database connection
db.init_app(app)
# Instantiate Admin section
admin.init_app(app)
# Initialize bootstrap
Bootstrap(app)
# Setup Flask-Security
security = Security(app, SQLAlchemyUserDatastore(db, User, Role))
# Debug = True to enable the toolbar
toolbar = DebugToolbarExtension(app)
# Load blueprint modules
from application.site.routes import mod as site
from application.api.routes import mod as api
# Register blueprint modules for use
app.register_blueprint(site)
app.register_blueprint(api, url_prefix='/api')
return app
1 ответ
Оказывается, каталог 'templates' должен был быть размещен непосредственно в папке 'application', чтобы это работало:
application
+-site
+-templates
+-security