最新內容請查閱我的博客:[佩恩的博客](https://www.wuyabala.com/article/7)
--------------------------------------
先說說背景吧,其實使用pymysql、mysqldb很久了诱告,一直很想搞一個通用的類沒來解決不同的腳本遇到的問題炉媒,但是貌似總覺得會有各種想不到的問題秩命,在使用django的orm之后波俄,感覺打開了一個新的世界阔涉。一直到發(fā)現(xiàn)了神器 sqlalchemy 這個orm框架缆娃。就記錄一下自己學習的過程中遇到的問題和學習收獲吧。
環(huán)境:python3.6瑰排、sqlalchemy 1.1.13
數(shù)據庫:mysql
安裝篇
????安裝比較簡單贯要,可以直接在官網 (http://www.sqlalchemy.org) 下載,也可以pip安裝椭住〕缟基本不會遇到什么問題,如果遇到問題的京郑,也可以去github下載安裝包宅广,直接安裝https://github.com/zzzeek/sqlalchemy
其實官方的文檔也非常詳細了,如果英文不錯的朋友些举,也可以直接去看官方的文檔跟狱。http://docs.sqlalchemy.org/en/latest/
安裝后先檢查是否安裝成功
import sqlalchemy
print(sqlalchemy.__version__)
---->1.1.13
就搞定了。户魏。
連接表
首先需要引入create_engine 這個方法
from sqlalchemyimport create_engine
engine= create_engine("mysql+pymysql://root:12345@127.0.0.1/test?charset=utf8")
#engine = create_engine("連接方式://數(shù)據庫名:數(shù)據庫密碼(沒有就為空)@數(shù)據庫地址:數(shù)據庫端口(默認端口為空也可以)/數(shù)據庫名?charset=數(shù)據庫編碼")
這里補充一下說明:
關于連接的方式驶臊,官方給了很多樣例挪挤,具體可以看這里:http://docs.sqlalchemy.org/en/latest/core/engines.html#
比如如果是py2.x系列的,因為底層使用的mysqldb关翎,如果安裝了這個模塊扛门,可以直接使用下面的樣例連接:
gine=create_engine("mysql://scott:tiger@hostname/dbname",encoding='latin1',echo=True)
但是py3.x系列的因為一直用的是pymysql,所以連接的時候需要注意一下笤休,可以用下面的方法連接:
engine=create_engine('mysql+pymysql://scott:tiger@localhost/foo')
如果連接的是遠程的數(shù)據庫尖飞,可以用以下的方式:
engine = create_engine('postgresql://scott:tiger@localhost/mydatabase')?
engine = create_engine('postgresql+psycopg2://scott:tiger@localhost/mydatabase')
engine = create_engine('postgresql+pg8000://scott:tiger@localhost/mydatabase')
同時這個框架還支持Oracle、SQLServer店雅、SQLite等政基,其他的具體連接說明可以從上面的那個鏈接去看一下。
create_engine 參數(shù)
編碼問題(默認是utf8):
連接數(shù)據庫的時候可以設置一下數(shù)據庫編碼闹啦,例如charset=utf8沮明,可以在連接的時候如下:
engine=create_engine('mysql+pymysql://scott:tiger@localhost/foo?charset=utf8')
max_overflow
最大連接數(shù),默認為5
pool_size?
連接池數(shù)量
持續(xù)完善窍奋。荐健。。