安装
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:[email protected]/food_db?charset=utf8mb4 --tables user --outfile "common/models/User.py" --flask 生成所有表 flask-sqlacodegen 'mysql://root:[email protected]/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='插入时间')