1、安裝sqlalchemy
pip install sqlalchemy
2、導入必要的包及模塊
import
sqlalchemy
from
sqlalchemy
.
ext
.
declarative
import
declarative_base
from
sqlalchemy
.
orm
import
sessionmaker
3、創建數據庫連接實例
#創建數據庫連接實例(#"數據庫類型+數據庫模塊://用戶名:密碼@主機/庫名")
db
=
sqlalchemy
.
create_engine
(
"mysql+pymysql://root:q1q1q1@localhost/a"
)
4、創建一個元類的繼承類
base
=
declarative_base
(
db
)
5、定義一個表(使用類)繼承base
class
Student
(
base
)
:
__tablename__
=
"student"
id
=
sqlalchemy
.
Column
(
sqlalchemy
.
Integer
,
primary_key
=
True
)
name
=
sqlalchemy
.
Column
(
sqlalchemy
.
String
(
32
)
)
age
=
sqlalchemy
.
Column
(
sqlalchemy
.
String
(
32
)
)
6、創建表
base.metadata返回sqlalchemy.schema.MetaData對象,它是所有Table對象的集合,調用create_all()該對象會觸發CREATE TABLE語句,如果數據庫還不存在這些表的話。
if
__name__
==
"__main__"
:
base
.
metadata
.
create_all
(
db
)
7、綁定連接并創建session
cursor
=
sessionmaker
(
bind
=
db
)
#得到的時一個類
session
=
cursor
(
)
#實例
8、增(插入數據)
①插入一條數據
stu
=
Student
(
id
=
1
,
name
=
"張1"
,
age
=
18
)
session
.
add
(
stu
)
session
.
commit
(
)
session
.
add_all
(
[
Student
(
id
=
2
,
name
=
"張2"
,
age
=
19
)
,
Student
(
id
=
3
,
name
=
"張3"
,
age
=
20
)
]
)
session
.
commit
(
)
9、查詢
①查詢所有數據
all_data
=
session
.
query
(
Student
)
.
all
(
)
#得到的是一個可迭代對象
for
data
in
all_data
:
print
(
"id:%s__name:%s__age:%s"
%
(
data
.
id
,
data
.
name
,
data
.
age
)
)
②根據條件查詢多條數據
many_data
=
session
.
query
(
Student
)
.
filter_by
(
age
=
18
)
print
(
many_data
)
#實際是一個sql查詢語句,其還是一個存儲一個對象的帶迭代內容
for
data
in
many_data
:
print
(
"id:%s__name:%s__age:%s"
%
(
data
.
id
,
data
.
name
,
data
.
age
)
)
many_data
=
session
.
query
(
Student
)
.
filter_by
(
age
=
18
)
data
,
=
many_data
print
(
"id:%s__name:%s__age:%s"
%
(
data
.
id
,
data
.
name
,
data
.
age
)
)
③查詢一條數據
data
=
session
.
query
(
Student
)
.
get
(
ident
=
3
)
#查一條,只能以主鍵查
print
(
"id:%s__name:%s__age:%s"
%
(
data
.
id
,
data
.
name
,
data
.
age
)
)
10、刪除
#先查詢一條
data
=
session
.
query
(
Student
)
.
get
(
ident
=
3
)
#然后刪除
session
.
delete
(
data
)
#然后提交操作
session
.
commit
(
)
11、修改
# 先查詢一條
data
=
session
.
query
(
Student
)
.
get
(
ident
=
2
)
#然后刪除
data
.
name
=
"老李頭"
#然后提交操作
session
.
commit
(
)
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
