как сохранить информацию о пользователе в сеансе flask-security - PullRequest
0 голосов
/ 26 марта 2019

Я работаю над приложением фляги, которое использует флеш-безопасность для управления доступом. Из эха sqlalchemy я заметил, что для каждой конечной точки, украшенной @roles_accepted, она отправляет новый запрос в базу данных (слишком много повторных запросов). Ожидается ли такое поведение для безопасности колб? Есть ли способ сохранить информацию о пользователе в течение сеанса, чтобы уменьшить количество запросов?

@roles_accepted('admin')
def index():
    ...
    return render_template('main.html')

Я нашел здесь пример для сеанса sqlalchemy. Я новичок в Flask, так что я не совсем понимаю, это то же самое, что пользовательский сеанс в браузере? Если да, то как мне интегрировать это в мое приложение? Я смущен тем, как database.py работает в примере. Любая помощь приветствуется!

my db инициируется с помощью create_app(). Нужно ли создавать новый сеанс в этом случае? Или как мне использовать экземпляр db в create_app в примере?

db = SQLAlchemy()

def create_app()
    ...
    db.init_app(app)

https://pythonhosted.org/Flask-Security/quickstart.html

database.py

from sqlalchemy import create_engine
from sqlalchemy.orm import scoped_session, sessionmaker
from sqlalchemy.ext.declarative import declarative_base

engine = create_engine('sqlite:////tmp/test.db', \
                       convert_unicode=True)
db_session = scoped_session(sessionmaker(autocommit=False,
                                         autoflush=False,
                                         bind=engine))
Base = declarative_base()
Base.query = db_session.query_property()

def init_db():
    # import all modules here that might define models so that
    # they will be registered properly on the metadata.  Otherwise
    # you will have to import them first before calling init_db()
    import models
    Base.metadata.create_all(bind=engine)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...