ORM框架SQLAlchemy的操作

2022-09-07 09:36:08 字數 3295 閱讀 7774

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#增

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