日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

python數據庫操作之sqlalchemy逆向工程

作者:蒼穹之躍 更新時間: 2022-04-17 編程語言

依賴安裝

pip install sqlacodegen

數據庫配置config.py

import os

from sqlalchemy import create_engine
from sqlalchemy.engine import Engine
from sqlalchemy.orm import declarative_base, sessionmaker, Session

HOST = 'localhost'
PORT = 3306
USERNAME = 'root'
PASSWORD = 'root'
DB = 'demo'

DB_URI = f'mysql+pymysql://{USERNAME}:{PASSWORD}@{HOST}:{PORT}/{DB}'

# 自動生成models
os.system(f'sqlacodegen {DB_URI} > models.py')

# 操作數據句柄
engine: Engine = create_engine(DB_URI)
Base = declarative_base(engine)
session: Session = sessionmaker(engine)()

右鍵運行config.py,會在當前目錄生成models.py模型文件如下,該文件最好不要改動,后面數據庫表改動的話,直接重新生成就好。

# coding: utf-8
from sqlalchemy import Column, DateTime, Integer, SmallInteger, String, TIMESTAMP, text
from sqlalchemy.dialects.mysql import TINYINT, VARCHAR
from sqlalchemy.ext.declarative import declarative_base

Base = declarative_base()
metadata = Base.metadata


class Admin(Base):
    __tablename__ = 'admin'

    id = Column(Integer, primary_key=True)
    name = Column(String(50))
    password = Column(String(50))
    status = Column(Integer)
    create_time = Column(DateTime)
    update_time = Column(DateTime)


class AdminRole(Base):
    __tablename__ = 'admin_role'

    id = Column(Integer, primary_key=True)
    user_id = Column(Integer, nullable=False, comment='用戶id')
    role_id = Column(Integer, nullable=False, comment='角色id')
    create_time = Column(TIMESTAMP, nullable=False, server_default=text("CURRENT_TIMESTAMP"), comment='創建時間')

操作數據庫

from orm.config import session
from orm.models import Admin


session.add(Admin(name='張三豐', password='123456', status=1))
session.commit()
# 查詢數據
admin__all = session.query(Admin.id).all()
print(admin__all)

原文鏈接:https://blog.csdn.net/wenxingchen/article/details/120843180

欄目分類
最近更新