使用Flask快速构建Web后端项目(下):Python、Flask、Mysql、Migrate、SQLAlchemy、Login、Session、Scheduler、Socket

Flask 是一个用 Python 编写的轻量级 Web 应用框架。它设计简单且易于扩展,如果与 Jinja2 模板引擎和 Werkzeug WSGI 工具集结合使用,Flask 可以用来快速开发小型到中型的网站。Flask 鼓励快速开发和简洁的代码,同时保持了扩展性和灵活性。本文旨在如何使用Flask及其相关组件快速构建一个Web后端项目,持续更新中…

〇、前景回顾

  1. 在上一篇中Flask快速构建项目(上)我们已经完成了项目的构建,包括Migrate、SQLAlchemy的引入,并定义了部门(Dept)的模型,成功创建一个接口
  2. 在本篇中,将继续引入Login、Session、Scheduler、Socket等扩展组件

一、Login登录管理

  1. 为了管理用户,我们需要有一个用户模型,用来记录用户信息,在apps.models.admins包下创建user.py模块,在其中定义如下Model
    # apps.models.admins.user.py 
    
    from datetime import datetime
    from flask_login import UserMixin  # 要想被Flask-Login接管,则Model需要继承UserMixin类
    from apps.inits import db
    
    
    class User(db.Model, UserMixin):
        __bind_key__ = "admin"
        __tablename__ = "user"
        id = db.Column("id", db.Integer, primary_key=True, autoincrement=True, comment="用户id")
        username = db.Column("username", db.String(50), nullable=False, unique=True, comment="用户名")
        email = db.Column("email", db.String(100), unique=True, comment="邮箱")
        phone = db.Column("phone", db.String(20), unique=True, comment="手机号")
        password_hash = db.Column("password_hash", db.String(100), nullable=False, comment="密码")
        create_time = db.Column("create_time", db.DateTime, default=datetime.now, comment="创建时间")
        update_time = db.Column("update_time", db.DateTime, default=datetime.now, onupdate=datetime.now, comment="更新时间")
        is_admin = db.Column("is_admin", db.Integer, default=0, comment="是否是管理员 0否 1是")
        is_active = db.Column("is_active", db.Integer, default=1, comment="是否激活 0否 1是")
        last_login = db.Column("last_login", db.DateTime, default=datetime.now, comment="最后登录时间")
        reset_token = db.Column("reset_token", db.String(255), comment="重置密码的token")
        reset_time = db.Column("reset_time", db.DateTime, comment="重置密码的时间")
    
        first_name = db.Column

你可能感兴趣的:(python,flask,后端)