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

學(xué)無(wú)先后,達(dá)者為師

網(wǎng)站首頁(yè) 編程語(yǔ)言 正文

python數(shù)據(jù)庫(kù)操作之sqlalchemy逆向工程

作者:蒼穹之躍 更新時(shí)間: 2022-04-17 編程語(yǔ)言

依賴安裝

pip install sqlacodegen

數(shù)據(jù)庫(kù)配置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}'

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

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

右鍵運(yùn)行config.py,會(huì)在當(dāng)前目錄生成models.py模型文件如下,該文件最好不要改動(dòng),后面數(shù)據(jù)庫(kù)表改動(dòng)的話,直接重新生成就好。

# 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='創(chuàng)建時(shí)間')

操作數(shù)據(jù)庫(kù)

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


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

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

欄目分類
最近更新