首页 > 数据库 >使用Flask快速构建Web后端项目:Python、Flask、Mysql、Migrate、SQLAlchemy、Login、Session、Scheduler

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

时间:2024-08-29 17:52:26浏览次数:11  
标签:Web SQLAlchemy Flask MYSQL -- install flask pip

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

标签:Web,SQLAlchemy,Flask,MYSQL,--,install,flask,pip
From: https://blog.csdn.net/qq_52011411/article/details/141681678

相关文章

  • 第44天:WEB攻防-PHP应用&SQL盲注&布尔回显&延时判断&报错处理&增删改查方式
    #PHP-MYSQL-SQL操作-增删改查1、功能:数据查询查询:SELECT*FROMnewswhereid=$id2、功能:新增用户,添加新闻等增加:INSERTINTOnews(字段名)VALUES(数据)3、功能:删除用户,删除新闻等删除:DELETEFROMnewsWHEREid=$id4、功能:修改用户,修改文章等修改:UPDATEnewsSETid=......
  • EventSource与WebSocket的区别
     EventSource和WebSocket是两种不同的技术,用于在客户端(通常是浏览器)和服务器之间实现实时通信。 尽管它们都可以用于推送实时数据,但它们有着不同的特性和适用场景。以下是它们的主要区别:1.通信方式EventSource(SSE-Server-SentEvents):单向通信:EventSource仅......
  • 实现一个通过调用openai4.0的智能聊天系统,支持上传图片(这里是通过websocket返回流式效
    <template><divclass="chatInfor"><divclass="chatInfor-content"><el-scrollbarheight="97%"id="chatBox"ref="scrollbarRef"v-loading="loading"wi......
  • WEB渗透Win提权篇-提权工具合集
      提权工具合集包(免费分享): 夸克网盘分享 往期文章WEB渗透Win提权篇-提权工具合集-CSDN博客WEB渗透Win提权篇-RDP&Firewall-CSDN博客WEB渗透Win提权篇-MSSQL-CSDN博客WEB渗透Win提权篇-MYSQL-udf-CSDN博客WEB渗透Win提权篇-AccountSpoofing-CSDN博客WEB渗透Win提权篇......
  • 黑马JavaWeb开发笔记09——ElementUI代码引入教程、Element常用组件使用(Table, Pagina
    文章目录前言ElementUI1.快速入门(代码引入教程)2.组件:Table表格3.组件:Pagination分页4.组件:Dialog对话框5.组件:Form表单总结前言本篇文章是2023年最新黑马JavaWeb开发笔记09:ElementUI代码进入教程、常用组件使用的总结,帮助需要学习Web开发的朋友温故而知新。El......
  • 一道ssrf题目--Web-ssrfme
    目录环境搭建代码分析漏洞点寻找渗透使用工具构造payload结果​编辑 环境搭建使用docker拉取上面文件root@ubuntu:~/web-ssrfme/web-ssrfme#docker-composeup-d代码分析首先进入题目环境,查看docker发现在8091端口下,进入后出现这么个页面查看代码发现file......
  • python+flask计算机毕业设计大学生闲置物品交易网站(程序+开题+论文)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景随着互联网技术的飞速发展,电子商务已成为人们日常生活不可或缺的一部分,极大地促进了商品交易的便捷性与效率。然而,在大学校园内,一个普遍存......
  • python+flask计算机毕业设计二手车交易管理系统的设计与开发(程序+开题+论文)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景随着汽车消费市场的日益成熟与车辆更新换代速度的加快,二手车交易已成为汽车市场不可或缺的一部分。然而,传统二手车交易过程中存在信息不对......
  • python+flask计算机毕业设计基于的零食销售商城(程序+开题+论文)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景随着互联网的飞速发展,电子商务已成为现代商业不可或缺的一部分,深刻改变着人们的消费习惯。零食作为日常消费的重要组成部分,其市场潜力巨大......
  • flask limiter 详解
    在使用Flask-Limiter(或类似的限流库)时,你可以设置一个标志来表示当请求频率超过设定的限制后采取的行为。这通常用于实现特定的逻辑,如锁定用户、记录违规行为或发送警告。以下是一个基本示例,展示了如何在超过限制时设置标志:安装Flask-Limiter确保你已经安装了Flask-Limiter:......