1.首先建立乙個空py檔案(這裡命名為connect.py):
from sqlalchemy importcreate_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__':
(dir(base))
print(dir(session))
2.新建乙個py檔案(這裡命名為modules.py),用來建立乙個user表單。
首先從sqlalchemy匯入建立資料庫記錄的格式,同時將上個connect.py檔案裡建立的base和session匯入進來,下面也需要用到datetime的模組,將其也匯入進來:
from connect import basefrom 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 importstudent
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]
(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的
(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 掛起的,這樣的物件準備插入資料庫,等執...