sqlalchemy創建數據庫自動映射


# -*- coding: utf-8 -*-
from datetime import datetime
from sqlalchemy.ext.automap import automap_base
from sqlalchemy.orm import sessionmaker
from sqlalchemy import create_engine

# 數據庫連接url
DB_CONNECT_STRING = "mysql+pymysql://user:passwd@127.0.0.1:3306/dbname?charset=utf8"

# 創建引擎
engine = create_engine(DB_CONNECT_STRING, echo=True)

# 自動映射
Base = automap_base()
Base.prepare(engine, reflect=True)

# 獲取所有表的映射類 ['book','user']
# tables = Base.classes.keys()
# print(tables)

# 獲取指定類user表 --> user實體類
User = Base.classes.user

# 查看User
# print(User.__dict__)

# 獲取所有字段或屬性 ['id', 'name']
# keys = User.__table__.columns.keys()
# print(keys)

# 創建session
Session = sessionmaker(bind=engine)
session = Session()

# 按條件查表, 返回實例集合
user = session.query(User).filter(User.id=='1').first()
print('id', user.id)
print('name:', user.name)

# 創建新的實例,並插入,nowtime字段為TIMESTAMP
newUser = User(id='6', name='chen')
session.add(newUser)

# 提交
session.commit()

session.close()


免責聲明!

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



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