用SQLAlchemy例項物件來進行資料庫表中資料的增刪改查操作(db.session.xx)
阿新 • • 發佈:2019-01-09
#encoding:utf-8 from flask import Flask from flask_sqlalchemy import SQLAlchemy import config app = Flask(__name__) app.config.from_object(config) db = SQLAlchemy(app) # 資料庫增刪改查(檢視函式中用db.session) #用例項與表資料對應,避免用sql語句來進行增刪改查動作 #用類來進行表的對映,一個類就是一個表,一個例項就是一條資料,一個變數屬性就是一個欄位 class Article(db.Model): #一定要繼承db.Model__tablename__ = 'article' id = db.Column(db.Integer,primary_key = True,autoincrement = True) title = db.Column(db.String(100),nullable = False) content = db.Column(db.Text,nullable = False) db.create_all #*************************以上就是服務的開啟並監聽,建立了一個數據庫表Article**************** @app.route('/') defhello_world(): #增加 article1 = Article(title = 'aaa1',content = 'gx1') article2 = Article(title = 'bbb1',content = 'gx2') db.session.add(article1) db.session.add(article2) db.session.commit() #只要一訪問瀏覽器,正確返回了hello world,說明事物提交成功 #查詢 sql為 select * from tbname where xxx = 'xxx' result = Article.query.filter(Article.title == 'aaa1').first() #這裡要用等號== print result #返回的是例項物件 print result.title #取出物件的title print result.content #取出物件content #改,先查詢出來,再來修改 result = Article.query.filter(Article.title == 'aaa1').first() print result result.title = 'aaa111' #將查詢出來的所有的title =='aaa1'的記錄,全部修改為'aaa111' db.session.commit() #刪除 delete from article where content =='bbb' #操作步驟:先查後刪除 result = Article.query.filter(Article.content == 'gx1').first() db.session.delete(result) db.session.commit() return "hello world" if __name__ == '__main__': app.run(debug=True)
以下是用到的配置檔案config.py
#encoding:utf-8 #dialect+driver://username:[email protected]:port/database DIALECT = 'mysql' DRIVER = 'mysqldb' USERNAME = 'root' PASSWORD = 'root' HOST = '127.0.0.1' PORT = '3306' DATABASE = 'db_demo2' #mysql 不會認識utf-8,而需要直接寫成utf8 SQLALCHEMY_DATABASE_URI = "{}+{}://{}:{}@{}:{}/{}?charset=utf8".format(DIALECT,DRIVER, USERNAME,PASSWORD,HOST,PORT,DATABASE) SQLALCHEMY_TRACK_MODIFICATIONS = True