Mysql
 sql >> база данни >  >> RDS >> Mysql

flask-login:не мога да разбера как работи

Flask-login всъщност няма потребителски бекенд, той просто обработва механизмите на сесията, за да ви помогне да влизате и излизате от потребителите. Трябва да му кажете (чрез методи за декориране), какво представлява потребител и също така зависи от вас да разберете как да разберете дали потребителят е „активен“ или не (тъй като „активен“ може да означава различни неща в различните приложения ).

Трябва да прочетете документацията и бъдете сигурни какво прави и какво не прави . Тук ще се съсредоточа само върху свързването му с бекенда на db.

За да започнете с, дефинирайте потребителски обект; който представлява свойства за вашите потребители. След това този обект може да прави заявки към бази данни или LDAP, или каквото и да е и това е куката, която свързва механизма за влизане с вашата база данни.

Ще използвам примера за вход скрипт за тази цел.

class User(UserMixin):
    def __init__(self, name, id, active=True):
        self.name = name
        self.id = id
        self.active = active

    def is_active(self):
        # Here you should write whatever the code is
        # that checks the database if your user is active
        return self.active

    def is_anonymous(self):
        return False

    def is_authenticated(self):
        return True

След като създадете потребителския обект, трябва да напишете метод, който зарежда потребителя (по принцип създава екземпляр на User клас отгоре). Този метод се извиква с потребителския идентификатор.

@login_manager.user_loader
def load_user(id):
     # 1. Fetch against the database a user by `id` 
     # 2. Create a new object of `User` class and return it.
     u = DBUsers.query.get(id)
    return User(u.name,u.id,u.active)

След като направите тези стъпки, вашият метод за влизане прави това:

  1. Проверява дали потребителското име и паролата съвпадат (срещу вашата база данни) - трябва да напишете този код сами.

  2. Ако удостоверяването е било успешно, трябва да предадете екземпляр на потребителя на login_user()



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как мога да забавя дъмп на MySQL, така че да не повлияе на текущото натоварване на сървъра?

  2. GROUP_CONCAT() Функция в MySQL

  3. Как да сравните низове за един интервал

  4. вмъкнете Unicode символ в бази данни

  5. Преобразувайте низ/varchar към дата между MySQL таблици