1.首先建立乙個空py檔案(這裡命名為connect.py):
from sqlalchemy import create_engine
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker
# 配置資訊
hostname =
'127.0.0.1'
port =
'3306'
database =
't_test'
username =
'root'
password =
'qwe123'
# 然後設定乙個字串的格式:
db_url=
'mysql+pymysql://{}:{}@{}/{}?charset=utf8'
.format
( username,
password,
hostname,
database
)# 建立乙個引擎:
engine = create_engine(db_url)
# 將引擎作為引數匯入declarative_base()方法,返回乙個類:
base = declarative_base(engine)
# 同時需要建立乙個會話窗,即對映:
session = sessionmaker(engine)
session = session(
)# 驗證是否成功可以在尾端進行如下操作:
if __name__==
'__main__'
:print
(dir
(base)
)print
(dir
(session)
)
2.新建乙個py檔案(這裡命名為modules.py),用來建立乙個user表單。
首先從sqlalchemy匯入建立資料庫記錄的格式,同時將上個connect.py檔案裡建立的base和session匯入進來,下面也需要用到datetime的模組,將其也匯入進來:
from connect import base
from datetime import datetime
from sqlalchemy import column, integer, string, datetime, boolean
# 然後定義乙個student類,繼承base:
class
student
(base)
:# 提交到資料庫
__tablename__ =
'student'
# **名字
id= column(integer, primary_key=
true
, autoincrement=
true
) username = column(string(20)
, nullable=
false
, unique=
true
) password = column(string(50)
) *** = column(boolean, default=
false
, nullable=
false
) creatime = column(datetime, default=datetime.now)
def__repr__
(self)
:return''%
(self.username,self.password)
# 最後再執行建立:
if __name__==
'__main__'
: base.metadata.create_all(
)
可以登入資料庫檢視一下user表是否被建立出來。
3.最後再建立乙個py檔案(這裡命名為test.py),用來測試「增刪改查」
from modules import student
from connect import session
#增def
add_user()
:# 新增一條資料
# person = student(username='小明',password='123456')
# session.add(person)
# 新增多條資料
session.add_all(
[student(username=
'小花'
,password=
'888'
),student(username=
'小黃'
,password=
'888')]
) session.commit()#刪
defdelete_user()
:# 刪除一條資料
row = session.query(student)
.filter_by(username=
'小花')[
0]print
(row)
session.delete(row)
# 刪除多條資料
# session.query(student).filter_by(password=888).delete()
# 清空
# session.query(student).delete()
session.commit()#改
defupdate_user()
:# session.query(student).filter_by(id=3).update() # 修改一條資料
session.query(student)
.filter_by(id=
1,password=
888)
.update(
)# 修改多條資料
session.commit()#查
defquery_user()
: row = session.query(student)
.all()
# 查詢所有
# row = session.query(student).get(1) # 使用get查詢,只能通過id查詢
# row = session.query(student).filter(student.id == 1).first() # 查詢id=1的
# row = session.query(student).filter_by(id=1).first() # 查詢id=1的
print
(row)
# 最後可以進行驗證:
if __name__==
'__main__'
:# 驗證
# add_user()
# delete_user()
# update_user()
query_user(
)
ORM框架SQLAlchemy的操作
1.首先建立乙個空py檔案 這裡命名為connect.py from sqlalchemy import create engine from sqlalchemy.ext.declarative import declarative base from sqlalchemy.orm import ...
sqlalchemy 的 ORM 方式使用示例
知乎 使用 sqlalchemy 的 orm 方式運算元據庫是一種怎樣的體驗?答 酸爽!這是 sqlalchemy 的層級圖。不難發現,其中 orm 是最頂級的封裝。orm 基本操作步驟如下 from sqlalchemy importcreate engine engine create engi...
sqlalchemy系列 2 orm相關簡易操作
sqlalchemy中的orm讓我們可以很方便的採用類似python物件的方式去運算元據庫,非常的方便實現增刪改查的各種功能,下面一一陳述 值得一說的是,sqlalchemy中的物件分為四種狀態 transient 短暫的,主要指記憶體中的物件 pending 掛起的,這樣的物件準備插入資料庫,等執...