月薪40K程序員為你帶來Flask三分鐘全面瞭解操作數據庫的神級操作

月薪40K程序員為你帶來Flask三分鐘全面瞭解操作數據庫的神級操作

喜歡的話關注收藏評論轉發比心麼麼噠!Python學習交流企鵝群526929231內有大量的項目開發和新手教學視頻PDF書籍的五千人大群等著你來加入

安裝

月薪40K程序員為你帶來Flask三分鐘全面瞭解操作數據庫的神級操作

需要先安裝mysql開發庫的。

操作

創建SQLALchemy 對象, 然後再 綁定Flask

月薪40K程序員為你帶來Flask三分鐘全面瞭解操作數據庫的神級操作

指定SQLALchemy URI

月薪40K程序員為你帶來Flask三分鐘全面瞭解操作數據庫的神級操作

定義模型

使用 ORM 就肯定要定義對象的

月薪40K程序員為你帶來Flask三分鐘全面瞭解操作數據庫的神級操作

從這兩個例子可以看到,定義一列是需要使用 db.Column 的,然後需要指定數據類型,還有列的選項,常用的數據類型有:

類型名Python 類型說明Integerint普通整數,一般是32位SmallIntegerint取值範圍小的整數,一般是 16 位BigIntegerint 或 long不限制精度的整數Floatfloat浮點數Numericdecimal.Decimal定點數Stringstr變長字符串Textstr編程字符串,對較長或不限長度的字符串做了優化Unicodeunicode變長 Unicode 字符串UnicodeTextunicode變長 Unicode 字符串,對較長或不限長度的字符串做了優化Booleanbool布爾值Datedatetime.date日期Timedatetime.time時間DateTimedatetime.datetime日期和時間Intervaldatetime.timedelta時間間隔Enumstr一組字符串PickleType任何 python 對象自動使用 Pickle 序列化LargeBinarystr二進制文件

而一些常用的 SQLAlchemy

列選項: 選項名說明primary_key如果設為 True,這列就是表的主鍵unique如果設為 True,這列不允許出現重複的值index如果設為 True,為這列創建索引,提升查詢效率nullable如果設為 True,這列允許使用空值,如果設為 False,這列不允許使用空值default為這列定義默認值

數據庫操作

數據庫的操作不外乎就是增刪改查,所以這裡就介紹一下增刪改查怎麼做,和其他 ORM(例如 MongoEngine) 不一樣,SQLAlchemy使用之前需要先創建表和數據庫才能操作數據。 所以第一步是創建表

月薪40K程序員為你帶來Flask三分鐘全面瞭解操作數據庫的神級操作

插入數據

月薪40K程序員為你帶來Flask三分鐘全面瞭解操作數據庫的神級操作

這裡需要提一下的就是 db.session,這個 session 是數據庫中 事務的含義,因此我們可以提交修改數據,也可以回滾取消修改。

修改數據

月薪40K程序員為你帶來Flask三分鐘全面瞭解操作數據庫的神級操作

修改只需要修改屬性並提交就行了。

刪除數據

月薪40K程序員為你帶來Flask三分鐘全面瞭解操作數據庫的神級操作

刪除數據直接調用 delete 方法即可,記得 commit。

查詢數據

查詢數據稍微複雜一下

  • 獲得查詢對象

  • 添加過濾條件

  • 如果還有其他分組之類的,繼續添加

月薪40K程序員為你帶來Flask三分鐘全面瞭解操作數據庫的神級操作

這裡的 filter_by 叫做過濾器,常用的過濾器有

過濾器說明filter把過濾器添加到原查詢上,返回一個新查詢filter_by把等值過濾器添加到原查詢上,返回一個新查詢limit 使用指定的值限制返回的結果數量,返回一個新查詢offset便宜原查詢返回的結果, 返回一個新查詢order_by根據指定條件對原查詢結果進行排序,返回一個新查詢group_by根據指定條件對原查詢結構進行分組,返回一個新查詢

如果後面不加.all(),那麼其實是不會真正到數據庫執行的,類似 all 的執行器還有很多,常用的有:

方法說明all以列表形式返回查詢的所有結果first返回查詢的第一個結果,如果沒有結果,則返回 Nonefirst_or_404返回查詢的第一個結果,如果沒有結果,則終止請求,返回 404 錯誤輸出get返回指定主鍵對應的行,如果沒有對應的行,則返回 Noneget_or_404返回指定主鍵對應的行,如果沒找到指定的主鍵,則終止請求,返回 404 錯誤輸出count返回查詢結果的數量paginate返回一個 Paginate 對象,它包含指定範圍內的結果


分享到:


相關文章: