flask筆記:flask與數據庫的交互

官方推薦使用flask-sqlalchemy,但是這裏我個人並不推薦。因爲一般後臺程序員其實更喜歡使用原生sql語言處理數據庫的問題,更重要的一個原因是在項目上線後,處理一些運維問題時,如果可以查看sql語句可以更快找到問題。其次flask-sqlalchemy是在sqlalchemy基礎上封裝了一層,從編譯的角度看效率上肯定會低一些(效率的影響也許微乎其微)。

基於以上原因,我推薦使用sqlalchemy進行開發。

下面的兩種方式不僅限於flask,其實就是python對數據庫操作的具體實現。

第一種方式(針對查詢):

from sqlalchemy import create_engine,text
#定義數據庫屬性
hostname = '127.0.0.1'
port = '3306'
database = 'dbname'
username = 'root'
pwd = 'pwd'
dburl = 'mysql+mysqldb://{}:{}@{}:{}/{}'.format(username,pwd,hostname,port,database)
#創建數據庫連接對象
engine = create_engine(dburl,echo=True)
with engine.connect() as con:
  rs = con.execute('SELECT 1')  # con.execute(text("select 1 "))
  for row in rs:
    print row

第二種方式(針對增刪改,有事務):

from sqlalchemy import create_engine,text
from sqlalchemy.orm import sessionmaker
#定義數據庫屬性
hostname = '127.0.0.1'
port = '3306'
database = 'dbname'
username = 'root'
pwd = 'pwd'
dburl = 'mysql+mysqldb://{}:{}@{}:{}/{}'.format(username,pwd,hostname,port,database)
#創建數據庫連接對象
engine = create_engine(dburl,echo=True)
Session = sessionmaker(bind=engine)
session = Session()
session.execute("insert test values ('abc','123')")
session.commit()
session.close()

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章