作為資料的操作,最基本的就是增刪改查
常用的sqlalchemy查詢過濾器
過濾器說明
filter()
把過濾器新增到原查詢上,返回乙個新查詢
filter_by()
把等值過濾器新增到原查詢上,返回乙個新查詢
limit
使用指定的值限定原查詢返回的結果
offset()
偏移原查詢返回的結果,返回乙個新查詢
order_by()
根據指定條件對原查詢結果進行排序,返回乙個新查詢
group_by()
根據指定條件對原查詢結果進行分組,返回乙個新查詢
常用的sqlalchemy查詢執行器
方法說明
all() 以列表形式返回查詢的所有結果
first()
返回查詢的第乙個結果,如果未查到,返回none
first_or_404()
返回查詢的第乙個結果,如果未查到,返回404
get()
返回指定主鍵對應的行,如不存在,返回none
get_or_404()
返回指定主鍵對應的行,如不存在,返回404
count()
返回查詢結果的數量
paginate()
返回乙個paginate物件,它包含指定範圍內的結果
建立表:db.create_all()
刪除表:db.drop_all()
以講師,教室,課程,單元 為例,首先需要設定foreignkey外來鍵約束
一條資料返回的結果為列表,且不支援jsonify,需要在model類中定義方法轉下格式#返回一條
pptagendas.query.filter_by(name="王").first()
pptagendas.query.first()
pptagendas.query.get(1)
pptagendas.query.get_or_404(1)
#返回所有
pptagendas.query.filter_by(name="王").all()
多條通過for…in呼叫to_jsondef to_json(self):
dict = self.__dict__
if "_sa_instance_state" in dict:
del dict["_sa_instance_state"]
return dict
通過keyword關鍵字搜尋獲取所有的單元和所屬的教室名,
使用join()方法,需要先行在model類中定義foreignkey進行關聯,如果有多個外來鍵同時關聯一張表,需要在join()裡進行指定關聯
獲取指定字段使用with_entities(),where語句寫在filter()中
先查出資料放到會話裡,再通過會話進行刪除sections.query.with_entities(sections, rooms.namecn).join(rooms, rooms.id == sections.roomid).filter(
or_(sections.id.like('%' + keyword + '%'), sections.topiccn.like('%' + keyword + '%'),
sections.topicen.like('%' + keyword + '%'),
sections.roomid.like('%' + keyword + '%')),
not_(sections.del == 1)).all()
#select a.*,b.namecn from sections a inner join rooms b on
#(a.roomid = b.id) where ...
同樣先查出#刪除
result=room.query.filter(room.namecn=='111').first()
db.session.delete(result)
try:
db.session.commit()
#失敗列印錯誤日誌並回滾
except exception as e:
db.session.rollback()
print(e)
放在model物件裡result=room.query.filter(room.namecn=='111').first()
result.namecn= "王"
try:
db.session.commit()
#失敗列印錯誤日誌並回滾
except exception as e:
db.session.rollback()
print(e)
result=room(namecn="111")
db.session.add(result)
try:
db.session.commit()
#失敗列印錯誤日誌並回滾
except exception as e:
db.session.rollback()
print(e)
Flask SQLAlchemy學習總結
配置鍵說明 sqlalchemy database uri 用於連線資料的資料庫。例如 sqlalchemy binds 乙個對映繫結 bind 鍵到 sqlalchemy 連線 uris 的字典。用於繫結多個資料庫 sqlalchemy echo 如果設定成 true sqlalchemy 將會記...
Flask SQLAlchemy定義模型
模型表示程式使用的資料實體,在flask sqlalchemy中,模型一般是python類,繼承自db.model,db是sqlalchemy類的例項,代表程式使用的資料庫。類中的屬性對應資料庫表中的列。id為主鍵,是由flask sqlalchemy管理。db.column類建構函式的第乙個引數是...
flask sqlalchemy用法簡介
coding utf 8 time 2019 5 26 20 54 author dailinqing email dailinqing 126.com file flask db.py software pycharm from flask sqlalchemy import sqlalchemy...