flask-sqlacodegen快速生成orm結構


安裝

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='插入時間')

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM