一、使用 sqlacodegen 导出 mysql 表为sqlalchemy ORM模型
1、安装sqlacodegen
pip install sqlacodegen
pip install pymysql
2、导出指定数据表
-
单表
sqlacodegen mysql+pymysql://root:password@127.0.0.1:3306/test --tables user --outfile user.py
-
多表
sqlacodegen mysql+pymysql://root:password@127.0.0.1:3306/test --tables user,iterm --outfile models.py
3、导出整个数据库
sqlacodegen mysql+pymysql://root:password@127.0.0.1:3306/test --outfile=models.py
二、懒人用法
只让模型代码跟数据库表字段关联,可以直接使用ORM增删改查,但是没办法在模型代码中直观的看到字段名称和字段类型等信息
from sqlalchemy import create_engine
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.sql.schema import Table
from sqlalchemy.orm import sessionmaker
engine = create_engine("mysql+pymysql://root:password@localhost:3306/test")
Base = declarative_base()
metadata = Base.metadata
metadata.bind = engine
class User(Base):
__table__ = Table("user", metadata, autoload=True)
session = sessionmaker(bind=engine)()
user_info = session.query(User).get(1)
print(user_info.nick_name)