安裝
pip install flask-sqlalchemy
pip install mysqlclient
pip install flask-sqlacodegen
mysql使用
0:新建數據庫名:food_db CREATE DATABASE `food_db` DEFAULT CHARACTER SET = `utf8mb4`; 1:新建管理員數據表 CREATE TABLE `user` ( `uid` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '用戶uid', `nickname` varchar(100) NOT NULL DEFAULT '' COMMENT '用戶名', `mobile` varchar(20) NOT NULL DEFAULT '' COMMENT '手機號碼', `email` varchar(100) NOT NULL DEFAULT '' COMMENT '郵箱地址', `sex` tinyint(1) NOT NULL DEFAULT '0' COMMENT '1:男 2:女 0:沒填寫', `avatar` varchar(64) NOT NULL DEFAULT '' COMMENT '頭像', `login_name` varchar(20) NOT NULL DEFAULT '' COMMENT '登錄用戶名', `login_pwd` varchar(32) NOT NULL DEFAULT '' COMMENT '登錄密碼', `login_salt` varchar(32) NOT NULL DEFAULT '' COMMENT '登錄密碼的隨機加密秘鑰', `status` tinyint(1) NOT NULL DEFAULT '1' COMMENT '1:有效 0:無效', `updated_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '最后一次更新時間', `created_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '插入時間', PRIMARY KEY (`uid`), UNIQUE KEY `login_name` (`login_name`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用戶表(管理員)'; 2:使用 flask-sqlacodegen 擴展方便快速生成 ORM model flask-sqlacodegen mysql://root:111@127.0.0.1/food_db?charset=utf8mb4 --tables user --outfile "common/models/User.py" --flask 生成所有表 flask-sqlacodegen 'mysql://root:111@127.0.0.1/food_db?charset=utf8mb4' --outfile "common/models/Model.py" --flask
結果
from sqlalchemy import BigInteger, Column, DateTime, Integer, String from sqlalchemy.schema import FetchedValue from flask_sqlalchemy import SQLAlchemy db = SQLAlchemy() class User(db.Model): __tablename__ = 'user' uid = db.Column(db.BigInteger, primary_key=True, info='用戶uid') nickname = db.Column(db.String(100), nullable=False, server_default=db.FetchedValue(), info='用戶名') mobile = db.Column(db.String(20), nullable=False, server_default=db.FetchedValue(), info='手機號碼') email = db.Column(db.String(100), nullable=False, server_default=db.FetchedValue(), info='郵箱地址') sex = db.Column(db.Integer, nullable=False, server_default=db.FetchedValue(), info='1:男 2:女 0:沒填寫') avatar = db.Column(db.String(64), nullable=False, server_default=db.FetchedValue(), info='頭像') login_name = db.Column(db.String(20), nullable=False, unique=True, server_default=db.FetchedValue(), info='登錄用戶名') login_pwd = db.Column(db.String(32), nullable=False, server_default=db.FetchedValue(), info='登錄密碼') login_salt = db.Column(db.String(32), nullable=False, server_default=db.FetchedValue(), info='登錄密碼的隨機加密秘鑰') status = db.Column(db.Integer, nullable=False, server_default=db.FetchedValue(), info='1:有效 0:無效') updated_time = db.Column(db.DateTime, nullable=False, server_default=db.FetchedValue(), info='最后一次更新時間') created_time = db.Column(db.DateTime, nullable=False, server_default=db.FetchedValue(), info='插入時間')