@manager.command
def init_db():
import json
with open('data_list.json', 'r') as f:
ship_list = json.load(f)
for datain data_list:
data_id = data['ID']
get_model(data_id)
with app.app_context():
db.create_all(app=app)
print('create table success')
- https://stackoverrun.com/cn/q/5228815
- https://www.jianshu.com/p/130bb4b36920
创建模型def get_model(suffix): class BaseModel(Base): __tablename__ = f'table_{suffix}' target_name = db.Column(db.String(64), nullable=False, unique=True, comment="名称") target_id = db.Column(db.String(32), comment="ID") c
from app_factory import app
from sqlalchemy import Column, String, Integer
class ProjectModel(app.db.model, app.db.Mixin):
tablename = 'Project_'
ID = Column(String(50), name='ID', doc='id')
PROJECTNUMBER = Column(Strin
初始化和配置
Flask-SQLAlchemy是一个Flask扩展,能够支持多种数据库后台,我们可以不需要关心SQL的处理细节,操作数据库,一个基本关系对应一个类,而一个实体对应类的实例对象,通过调用方法操作数据库。Flask-SQLAlchemy有很完善的文档。
连接mysql方法:
from flask_sqlalchemy import SQLAlchemy
from flask im...
sqlalchemy中动态创建数据表前言一、sqlalchemy中的Metadata类1.1创建一个MetaData类1.2创建数据表类1.3创建数据表2.动态创建数据表
参考来源:sqlalchemy中创建数据表
在sqlalchemy中,想要动态创建数据表时,可以调用sqlalchemy的MetaData类以及create_all方法创建新的数据表
一、sqlalchemy中的Metadata类
SQL表达式语言根据表列构造其表达式。SQLAlchemy列对象表示数据库表中的一列,而该列又
from sqlalchemy import create_engine, text
engine = create_engine('mysql+pymysql://user:password@host/dbname')
with engine.connect() as conn:
conn.execute(text('LOCK TABLES table_name WRITE'))
# 执行需要锁定表的操作
conn.execute(text('UNLOCK TABLES'))
其中,`table_name`是需要锁定的表名,`WRITE`表示锁定的类型为写锁。在执行完需要锁定表的操作后,需要执行`UNLOCK TABLES`释放锁。