ORM框架SQLAlchemy的操作

2021-10-06 01:47:29 字數 3618 閱讀 5385

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 掛起的,這樣的物件準備插入資料庫,等執...