<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      《SQLAlchemy 2 In Practice》讀后感

      一、 為什么讀這本書?

      1.平時工作中用的都是 SQLAlchemy 1 的語法,因為 SQLAlchemy 2 發布已經有好長一段時間了,也是未來的趨勢,所以想了解一下SQLAlchemy 2 的語法。

      2.個人覺得 SQLAlchemy 的文檔很混亂,經常找不到自己想要的內容,想了解一下其它人是怎么使用文檔的。

      基于以上兩個目的,鑒于作者(Miguel Grinberg) 之前寫過一本《Flask Web Development》(中譯版是《Flask Web開發:基于Python的Web應用開發實戰》),個人覺得還行,所以就選擇該書作為了解 SQLAlchemy 2 語法的切入點。

      二、這本書寫了什么?

      本書總共包含 8 個章節。

      第 1 章:Database Setup

      介紹如何在項目中使用常見的關系型數據庫,如:SQLite, MySQL, PostgreSQL。

      第 2 章:Database Tables

      介紹數據庫表的操作,以及常見的 CRUD 操作。個人覺得本章是本書寫得最好的一章,也是最具有實戰意義的一章。查詢操作示例:

      SQLAlchemy 1 版本的查詢語句是:

      from models import Product
      
      products = Product.query.all()
      

      SQLAlchemy 2 版本的查詢語句是:

      from sqlalchemy import select
      from models import Product
      
      query = select(Product)
      result = session.execute(query)
      products = result.scalars().all()
      

      第 3 章: One-To-Many Relationships

      介紹一對多關系,平時工作中用的最多。

      第 4 章: Many-To-Many Relationships

      介紹多對多關系,中規中矩。

      第 5 章: Advanced Many-To-Many Relationships

      介紹一些高級的多對多關系用法,平時工作中用的相對較少。

      第 6 章: A Page Analytics Solution

      本章寫得不好,在實際項目中或者復雜的項目中很少這樣使用。

      第 7 章:Asynchronous SQLAlchemy

      鑒于本人在實際工作中并未這樣實用過,無法判斷其用法是好的還是不好的,本章不評價。

      第 8 章: SQLAlchemy and the Web

      介紹在 Flask、FastAPI 中集成 SQLAlchemy,寫得不好,在實際項目中或者復雜的項目中很少這樣使用。

      從 2025 年 6 月 21 日至 2025 年 7 月 2 日,期間斷斷續續花了 8 天閱讀完《SQLAlchemy 2 In Practice》。

      三、這本書特點

      1.邏輯結構清晰,行文流暢

      雖然這本書是作者自己出版的,但是作者是一個很負責的人,整本書邏輯結構清晰,總共 8 個章節,由易到難,逐漸遞進。行文流暢,讓讀者閱讀起來非常絲滑,基本講明白了“為什么有這個東西,怎么用這個東西”。所以整本書 200 多頁,我只花了 8 天就讀完了。

      2.內容簡單

      正因為第一個特點——“邏輯結構清晰,行文流暢”,所以其實我個人希望作者能多寫一點,能更深入一點。這可能跟作者對本書的定位有關,可能作者想寫的就是一本入門書。

      3.缺乏工程性

      以最后一章為例,如果后端使用 Flask, 那么最好是使用 flask-migrate, 不然數據庫遷移就會變成非常麻煩。這也是作者所有的書給我的一種感覺,作者的很多寫法沒有錯,但嚴格來說,充其量只能算作 demo,缺乏工程性,很難應用到大型項目中(或者說在大型項目中這樣的代碼還需要優化)。

      四、這本書適合什么樣的人?

      在閱讀本書的過程中,解決了我一直以來非常不理解的兩個問題:

      1.flask-sqlalchemy 文檔開頭的兩行代碼到底想表達什么?

      class Base(DeclarativeBase):
        pass
      

      因為之前在 Flask 項目中直接使用的是 Flask-SQLAlchemy, 一直沒看到這兩行代碼的應用,導致我一直不理解這兩行的代碼想表達什么。看完這本書我懂了,其實 Base 就是 Model,在 SQLAlchemy 中 model 必須顯示繼承 DeclarativeBase,至于 Flask-SQLAlchemy 為什么要在開頭加這兩句,不得而知,個人覺得沒有必要。不過這已經不重要了,已經知道 sqlalchemy 的規則就可以了。

      2.既然已經提供了 ForeignKey, 為什么還要使用 relationship() 呢?

      ForeignKey 作用于數據庫層面, relationship() 作用于 ORM 層面。

      回到“為什么讀這本書?”,對于“想了解一下SQLAlchemy 2 的語法”——本書已經解決了我的問題;對于“想了解一下其它人是怎么使用文檔的”——個人還是覺得 SQLAlchemy 文檔的返回和排版做得不好,閱讀的時候,應該牢牢抓住“Content”這個頁面(https://docs.sqlalchemy.org/en/20/contents.html)。

      總體而言,本書寫得還行,相對簡潔,屬于入門級教材,適合想對 SQLAlchemy 語法有所了解的初學者。

      五、推薦指數

      按照 5 星的標準,本書推薦指數 3 顆星。

      六、參考資料

      1. 編程

      (1)豆瓣,Miguel Grinberg,《SQLAlchemy 2 In Practice》:https://book.douban.com/subject/36482906/

      (2)源碼,Github:https://github.com/miguelgrinberg/retrofun

      2. 英語

      (1) Etymology Dictionary:https://www.etymonline.com

      (2) Cambridge Dictionary:https://dictionary.cambridge.org

      codist_mp

      歡迎搜索及關注:編程人(a_codists)

      posted @ 2025-08-20 14:41  codists  閱讀(22)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 国产老熟女国语免费视频| 中文字幕 日韩 人妻 无码| 国内自拍视频一区二区三区 | 国产普通话对白刺激| 色九月亚洲综合网| 中文熟妇人妻av在线| 亚洲AV成人无码精品电影在线| 车险| 国产精品色哟哟成人av| 99精品热在线在线观看视| 周至县| 国产美女午夜福利视频| 久久久成人毛片无码| 亚洲色拍拍噜噜噜最新网站| 色综合久久婷婷88| 欧洲熟妇色xxxxx欧美| 国产亚洲精品AA片在线播放天| 国产av综合色高清自拍| 在线国产毛片| 五月综合网亚洲乱妇久久| 真实国产老熟女无套内射| 乱妇乱女熟妇熟女网站| 国产欧美亚洲精品第一页在线| 国产精品av中文字幕| 久久久久国产精品熟女影院 | 中文字幕在线观看亚洲日韩| 黑森林福利视频导航| 熟妇人妻中文a∨无码| 人人妻人人玩人人澡人人爽| 亚洲色大成网站WWW久久| 日韩免费码中文在线观看| 国产精品久久久久aaaa| 国产精品成人午夜久久| 桃花岛亚洲成在人线AV| 岛国最新亚洲伦理成人| 美女又黄又免费的视频| 97se亚洲综合在线天天| 国产欧美综合在线观看第十页| 国产精品人成在线观看免费| 亚欧美闷骚院| 午夜福利国产精品小视频|