1. 程式人生 > >flask連線mysql資料庫操作

flask連線mysql資料庫操作

Y21

  以簡單的年級表格模型為例,介紹資料庫的增刪改查,條件查詢等操作

程式碼,以下:

from app import db

# 定義資料模型, 設定表格中各個欄位的資料型別
class Grade(db.Model):
    g_id = db.Column(db.Integer,primary_key=True,autoincrement=True)
    g_name = db.Column(db.String(30),nullable=False, unique=True)
    g_num = db.Column(db.Integer, nullable=True)
    __tablename__ =
'grade' def __init__(self, name, num): self.g_name = name self.g_num = num # 生成表格 db.create_all() # 資料新增 grade1 = Grade('py5',38) grade2 = Grade('py6',28) # session:是一塊臨時儲存區域, 用來暫存資料庫操作的資料, 最終通過commit統一提交給資料庫. # db.session.add(grade1) # db.session.add(grade2) # db.session.commit()
# 資料查詢(查詢所有資料) # result = Grade.query.all() # for item in result: # print(item.g_name, item.g_num, item.g_id) # 按照主鍵值查詢 # result = Grade.query.get(1) # print(result) # 按條件查詢, filter()設定對應的過濾條件, 完成資料的過濾操作 # result = Grade.query.filter(Grade.g_num > 20).all() # print(result) # 資料庫分頁查詢, paginate(引數1, 引數2, 引數3), 引數1代表查詢的頁碼, 頁碼值從1開始; 引數2代表每一頁查詢的總資料條數; 引數3是布林型別,用來設定當查詢超出範圍時, 以何種方式返回結果, 預設為True, 以404錯誤資訊返回, 如果為False此時以空列表形式返回.
# result = Grade.query.paginate(2, 5, False) # print(result.items) # 獲取查詢結果的總數量 # count = Grade.query.count() # 按條件查詢所有滿足的結果的個數 # count = Grade.query.filter(Grade.g_num > 30).count() # print(count) # 從查詢結果中提取指定數量的資料(利用列表'切片'提取需要的物件) # result = Grade.query.filter(Grade.g_num > 30).all()[1:3] # print(result) # 多條件查詢語句 startswith:以指定字元開頭 # result = Grade.query.filter(Grade.g_name.startswith('py'),Grade.g_num > 30).all() from sqlalchemy import * """ sqlalchemy模組內建的查詢條件 and_(): 並且 or_(): 或者 not_(): 非, 條件只能一個 """ # result = Grade.query.filter(and_(Grade.g_name.startswith('py'),Grade.g_num > 30)).all() # result = Grade.query.filter(not_(Grade.g_num > 30)).all() # print(result) # 資料庫的刪除 先查詢再刪除 # grades = Grade.query.filter(Grade.g_id > 9).all() # for item in grades: # db.session.delete(item) # db.session.commit() # 資料修改 查詢後修改 # grade_1 = Grade.query.filter(Grade.g_num > 30).first() # grade_1.g_num = 25 # db.session.commit()

個人小結,定有不足,歡迎指點。 謝謝~