程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

數據持久化技術(Python)的使用

編輯:Python
  • 傳統數據庫連接方式:mysql(PyMySQL)
  • ORM 模型:SQLAlchemy MyBatis、 Hibernate

PyMySQL

安裝:

pip install pymysql

簡單使用

利用 pymysql.connect 建立數據庫連接並執行 SQL 命令(需要提前搭建好數據庫):

import pymysql
db = pymysql.connect(
# mysql 地址
host='182.92.129.158',
# 賬號和密碼
user='tmp',
password='ceshiren.com',
# 數據庫
db='tmp',
charset='utf8mb4'
)
if __name__ == '__main__':
with db.cursor() as cursor:
# 查看數據庫中有多少表
sql = "show tables;"
# 執行 sql 語句
cursor.execute(sql)
# 查看所有數據
print(cursor.fetchall())
# 查詢 name = aaaaaa 的數據
sql = "select * from test_case_table where name=%s"
cursor.execute(sql, ["aaaaaa"])
print(cursor.fetchall())
(('test_case_table',),)
(('aaaaaa', '新的測試用例', 'test_hello.py', 'def test'),)

ORM

對象關系映射( object-relational mapping) 利用語言特性,操作數據庫,比如對 Python 對象的操作,操作內容會映射到數據庫裡。
SQLALchemy 是 Python 編程語言下的一款 ORM 框架,該框架建立在數據庫 API 之上,使用關系對象映射進行數據庫操作。

安裝

pip3 install SQLAlchemy

安裝完成後可創建數據庫連接:

engine = create_engine("mysql+pymysql://tmp:[email protected]/tmp?charset=utf8",echo=True,)

1.echo: 當設置為 True 時會將 ORM 語句轉化為 SQL 語句打印,一般 debug 的時候可用。
2.字段解釋:
3.mysql+pymysql:連接方式,采用 pymysql 。
4.tmp:ceshiren.com:用戶名:密碼。
5.182.92.129.158/tmp:數據庫地址和數據庫名稱。

創建數據庫

from sqlalchemy import create_engine, Column, Integer, String
from sqlalchemy.orm import declarative_base
engine = create_engine("mysql+pymysql://tmp:[email protected]/tmp?charset=utf8",
echo=True,
)
# 其子類將 Python 類和數據庫表關聯映射起來
Base = declarative_base()
# 繼承 Base
class Users(Base):
__tablename__ = "users"
id = Column(Integer, primary_key=True)
name = Column(String(64), unique=True)
def __init__(self, name):
self.name = name
if __name__ == '__main__':
# 生成數據庫表,如果有此庫會忽略
Base.metadata.create_all(engine)

declarative_base() 是 SQLALchemy 內部封裝的一個方法,可以讓其子類將 Python 類和數據庫表關聯映射起來。

增和查

SQLALchemy 使用 Session 用於創建程序和數據庫之間的會話,通過 Session 對象可實現對數據的增刪改查。

from sqlalchemy.orm import sessionmaker
# 創建session
Session = sessionmaker(bind=engine)
session = Session()
# 添加新數據
add_user = Users("student1")
# 提交
session.add(add_user)
session.commit()
# 查詢
result = session.query(Users).filter_by(name="student1").first()
print(result.id, result.name)

上述代碼新增數據後進行查詢,結果如下:

1 student1

數據持久化技術就先介紹到這裡,大家可以試著做一下練習,
我們後面會講跨平台API對接,請持續關注哦~


  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved