1. 程式人生 > >用SQLAlchemy例項物件來進行資料庫表中資料的增刪改查操作(db.session.xx)

用SQLAlchemy例項物件來進行資料庫表中資料的增刪改查操作(db.session.xx)

#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('/') def
hello_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