sqlalchemy建立資料庫自動對映

2022-07-26 23:18:27 字數 1147 閱讀 1364

# -*- 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:"

# 建立引擎

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()

SQLAlchemy建立資料庫模型之間的關係

一對多關係,單作者 多文章,外來鍵不可少 外來鍵 foreignkey 總在多的那邊定義,關係 relationship 總在單的那邊定義 class author db.model id db.column db.integer,primary key true name db.column db...

SQLAlchemy連線資料庫建立表

連線資料庫,建立表 defcreate all engine create engine mysql pymysql max overflow 0,超過連線池大小外最多建立的連線 pool size 5,連線池大小 pool timeout 30,池中沒有執行緒最多等待的時間,否則報錯 pool r...

SQLALchemy 資料庫遷移

在開發過程中,需要修改資料庫模型,而且還要在修改之後更新資料庫。最直接的方式就是刪除舊表,但這樣會丟失資料。更好的解決辦法是使用資料庫遷移框架,它可以追蹤資料庫模式的變化,然後把變動應用到資料庫中。在flask中可以使用flask migrate擴充套件,來實現資料遷移。並且整合到flask scr...