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

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

〇、前置介绍

  • 语言:Python,版本3.8,自行安装,建议使用Conda虚拟环境
    conda create -n myenv python=3.8     # myenv更改成自己想创建的虚拟环境的名字
    activate myenv   # 激活虚拟环境
    
  • 数据库:Mysql,版本最新即可
  • Flask及其组件(3.8下最新即可):
    • Flask: flask框架本身
    • Flask-SQLAlchemy: ORM框架,用来操作数据库表
    • Flask-Migrate: 数据库迁移框架,创建数据库表
    • Flask-Marshmallow:数据序列化框架
    • Flask-APSCheduler: 定时任务框架
    • Flask-Session: 存储session的扩展
    • Flask-SocketIO: 解决需要websocket的场景

一、安装依赖

  1. 安装依赖包
    pip install flask  # 安装flask框架
    pip install flask-sqlalchemy  # 安装flask-sqlalchemy ORM框架
    pip install flask-migrate  # 安装flask-migrate 数据库迁移框架
    pip install flask-marshmallow  # 安装flask-marshmallow 数据序列化框架
    pip install flask-apscheduler  # 安装flask_apscheduler 定时任务框架
    pip install flask-session  # 安装flask-session 存储session
    pip install flask-scoketio  # 安装flask-socketio 解决需要websocket的场景
    # 以下可选,后期有需求再下载
    pip install flask-script  # 安装flask-script 命令行工具 
    pip install flask-admin  # 安装flask-admin 后台管理框架
    pip install flask-wtf  # 安装flask-wtf 表单验证框架
    pip install flask-restful  # 安装flask-restful RESTful API框架
    pip install flask-restful-swagger  # 安装flask-restful-swagger RESTful API文档框架
    
  2. 说明:pip install 安装包时对包名的大小写不敏感,而Linux命令对大小写敏感

二、 项目结构

  1. 创建如下项目结构,亦可自行调整
  2. 说明:下述提到的目录为文件夹,为python的包,创建时注意
    -- project  # 项目顶层文件夹   目录
        -- apps   # 业务模块   包
            -- inits  # 初始化配置   包
            -- models  # 模型层   包
            -- schemas  # 序列化   包
            -- common  # 公共方法   包
            -- views  # 视图层    包
            -- __init__.py   # 初始化文件, 内部定义创建app的方法
            -- config.py  # 配置文件
        -- static  # 静态文件  目录
        -- templates  # 模板文件  目录
        -- db  # 数据库脚本文件   目录
        -- doc  # 文档文件  目录
        -- app.py   # 入口文件
    

三、创建APP

  1. config.py中添加如下配置类,将flask相关配置都封装到一个类里,方便维护

    # project.apps.config.py
    # 下述配置文件定义不同环境的配置类,使用时导入响应的类即可
    # 本例中只给出了密钥、数据库的配置,后期有session、login、scheduler方面的配置再加入即可
    
    from flask import Config
    
    
    # 共公配置
    class BaseConfig(Config):
        SECRET_KEY = 'xxxxxx'
    
        MYSQL_HOST = 'localhost'
        MYSQL_PORT = 3306
        MYSQL_USER = 'root'
        MYSQL_PASSWORD = 'xxxxxx'
        ADMIN_DB = 'admin'  # 管理员数据库  注意:需要提前创建该数据库, 如 create database `admin` default charset utf8mb4 collate utf8mb4_unicode_ci;
        BUSINESS_DB = 'business'  # 业务数据库  注意:需要提前创建该数据库
    
        # 配置数据库连接信息,flask默认的数据库:SQLALCHEMY_DATABASE_URI
        SQLALCHEMY_DATABASE_URI = 'mysql+pymysql://{}:{}@{}:{}/{}?charset=utf8mb4'.format(MYSQL_USER, MYSQL_PASSWORD, MYSQL_HOST, MYSQL_PORT, BUSINESS_DB)
                                   
        # 其他数据库,使用SQLALCHEMY_BINDS命名的一个字典,key为数据库在项目中的名称,value为连接串
        SQLALCHEMY_BINDS = {
         
            'admin': 'mysql+pymysql://{}:{}@{}:{}/{}?charset=utf8mb4'.format(MYSQL_USER, MYSQL_PASSWORD, MYSQL_HOST, MYSQL_PORT, ADMIN_DB)
        }
    
        
    # 开发配置类
    class DevConfig(BaseConfig):
        DEBUG = True
    
    
    # 生产配置类
    class ProConfig(BaseConfig):
        DEBUG = False
    
  2. 在MySQL中创建adminbusiness数据库

    create database if not exists `admin
  • 25
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值