官方推薦使用flask-sqlalchemy,可是這裏我我的並不推薦。由於通常後臺程序員其實更喜歡使用原生sql語言處理數據庫的問題,更重要的一個緣由是在項目上線後,處理一些運維問題時,若是能夠查看sql語句能夠更快找到問題。其次flask-sqlalchemy是在sqlalchemy基礎上封裝了一層,從編譯的角度看效率上確定會低一些(效率的影響也許微乎其微)。python
基於以上緣由,我推薦使用sqlalchemy進行開發。mysql
下面的兩種方式不只限於flask,其實就是python對數據庫操做的具體實現。程序員
第一種方式(針對查詢):sql
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()