Python 潮流周刊#38:Django + Next.js 構建全棧項目
△ △ 請給“ Python貓 ”加星標 ,以免錯過文章推送

你好,我是貓哥。這里每周分享優(yōu)質(zhì)的 Python、AI 及通用技術內(nèi)容,大部分為英文。本周刊開源,歡迎投稿[1]。另有電報頻道[2]作為副刊,補充發(fā)布更加豐富的資訊,歡迎關注。
提醒:本期有贈書活動,詳見文末;春節(jié)期間,本周刊預計停更一周,祝大家春節(jié)快樂!
??文章&教程
1、使用 Django、Django REST 和 Next.js 構建全棧項目[3]
Django 和 Nextjs 是后端和前端開發(fā)中非常強大 Web 框架,這篇教程用 Django 4.2 和 Next.js 13 開發(fā)了一個餐廳菜單管理項目。
2、使用 SQL、Node.js、Django 和 Next.js 構建儀表板項目[4]
比上一則分享更為全面的全棧項目教程,除了實現(xiàn) CURD 操作,還涉及儀表板、表單篩選、Tailwind CSS、不同數(shù)據(jù)庫的使用,以及分別使用 Node.js 和 Django 構建后端等內(nèi)容。
3、用 Profila 分析你的 Numba 代碼[5]
Numba 是提升 Python 代碼性能的常見方案。作者開源了一個 Profila[6] 庫,專用于分析 Numba 代碼本身的性能問題,文章介紹了它的使用方法,以及關于性能分析的三點局限性。
4、Python datetime 標準庫的 10 個陷阱[7]
作者分析了datetime 模塊的 10 個陷阱,同時介紹了主流的三方庫的情況(例如 arrow 、pendulum 、DateType、heliclockter),發(fā)現(xiàn)它們大多存在同樣的問題。什么樣才是更好的日期時間庫?作者開源了一個庫,試圖解決文中的問題。
5、使用 Python 糾正語法的 4 種方法[8]
這里的“語法”指的是寫作語法,不是編程語法。文章介紹了language-tool-python 、Gramformer 、Ginger 和 pyaspeller 4 個庫用于檢查和自動糾正語法錯誤。
6、Python 調(diào)試技巧[9]
這是作者在 2023 PyCon Sweden 演講的文字版,分享了他的調(diào)試思維、調(diào)試工具和技術,工具例如snoop、pdb/ipdb、PuDB、web-pdb、birdseye、Kolo 等等。
7、調(diào)試 Python 與 C 語言混合的項目[10]
調(diào)試很難,跨多語言調(diào)試更難。文章介紹了如何調(diào)試多語言問題,使用 GDB 來調(diào)試 Python+C 語言,定位和解決死鎖問題,分享了一些調(diào)試的經(jīng)驗。
8、分析“使用 Python 和 2MB RAM 對一百萬個 32 位整數(shù)進行排序”[11]
Guido 在 2008 年寫了 Sorting a million 32-bit integers in 2MB of RAM using Python[12] ,這篇文章是對它作的分析解讀。解決方案中用到了不太常見的模塊:struct、array、heapq ,也用了上下文管理器和生成器等技術。
9、使用 Python + Pylasu 實現(xiàn)語言解析器[13]
如何用 Python 開發(fā)一個解析器?這篇教程用Pylasu 定義 AST,使用ANTLR 生成解析器,實現(xiàn)從 ANTLR 解析樹到 Pylasu AST 的轉(zhuǎn)換,最后構建出帶 CLI 的玩具編程語言解析器。
10、動態(tài)規(guī)劃不是黑魔法[14]
動態(tài)規(guī)劃什么編程技術?相比其它方案,它的特點和優(yōu)勢是什么?文章從常見編程問題出發(fā),使用緩存、優(yōu)化緩存、動態(tài)規(guī)劃逐步深入,揭開動態(tài)規(guī)劃的神秘面紗。
11、什么時候應避免靜態(tài)類型檢查?[15]
Python 支持用類型提示,但這并不是強制的。事實上,有很多情況下并不建議使用類型提示。typing 模塊的這篇文檔列舉了一些不推薦使用類型提示的原因。
12、實用指南:用 Python 運行開源的 LLM[16]
在個人筆記本電腦上如何運行大語言模型?這篇教程介紹了在不同操作系統(tǒng)上運行llama.cpp 的完整過程,例如選擇和下載模型、提示詞設置、使用 GBNF 語法格式化 LLM 輸出、流式響應、多模態(tài)模型等。
??Python潮流周刊??每 30 期為一季,第一季的精華內(nèi)容已整理成一篇,方便你隨時查看。在線訪問地址:Python 潮流周刊第一季精華合集(1~30)[17]
???項目&資源
1、excelCPU:用 Excel 實現(xiàn)的 16 位 CPU 和相關文件[18]
才發(fā)布一周就已近 3K star 的火爆項目!CPU.xlsx 文件提供了 16 位 CPU、16 個通用寄存器、128KB RAM 和 128x128 顯示區(qū)域。使用 Python 進行編譯。(star 3K)
2、whenever:萬無一失的 Python 日期時間[19]
前文提及過的日期時間庫,克服了標準庫和其它三方庫沒有很好解決的一些問題。
3、DeepSeek-Coder:讓代碼自己編寫[20]
它由一系列代碼語言模型組成,每個模型都用 2T token 訓練,提供多種型號尺寸,擁有高級代碼補全能力,在各項基準測試中表現(xiàn)亮眼。(star 4.3K)
與其它模型的基準測試評分對比
4、fastcrud:FastAPI 的異步 CRUD 操作[21]
特性有:完全異步、SQLAlchemy 2.0、強大的 CRUD、動態(tài)構建復雜查詢、高級 SQL 聯(lián)結(jié)、基于偏移或光標的分頁、模塊化可擴展、自動生成接口。
5、leptonai:簡化 AI 服務構建的 Pythonic 框架[22]
讓你輕松用 Python 代碼構建 AI 服務,主要特性:良好的抽象、僅需幾行代碼即可啟動模型、內(nèi)置常見模型(如 Llama、SDXL、Whisper 等)的示例、自動批處理、后臺任務等。(star 1.9K)
6、gpt-newspaper:用 GPT 創(chuàng)建個性化報紙[23]
讓 AI 根據(jù)你的個人品味和興趣來策劃選題、撰寫、設計和編輯內(nèi)容,由 6 個專業(yè) agent 組成,支持搜索網(wǎng)絡最新內(nèi)容,聚合知名的新聞源。
7、apprise:幾乎適用于所有平臺的通知推送[24]
純 Python 開發(fā)的輕量型消息推送庫,支持通過大多數(shù)服務發(fā)送通知,例如 Telegram、Discord、Slack、Amazon SNS、Gotify 等等等,支持短信、郵件、系統(tǒng)桌面等多種形式。(star 9.7K)
8、procrastinate:基于 PostgreSQL 的 Python 任務隊列[25]
一個基于 PostgreSQL 的分布式任務處理庫,提供 Django 集成,易于與 ASGI 框架一起使用。支持異步、周期任務、重試、任意任務鎖等功能。
9、flent:靈活的網(wǎng)絡基準測試工具[26]
它可以同時運行多個 netperf/iperf/ping 實例并聚合結(jié)果,通過交互式 GUI 和可擴展的繪圖功能展示數(shù)據(jù),支持本地和遠程主機,支持采集 CPU 使用率、WiFi、qdisc 和 TCP 套接字統(tǒng)計信息等。
10、urllib3:新版本支持在瀏覽器發(fā)起 HTTP 請求[27]
urllib3 發(fā)布了 2.2.0 版本,支持在Pyodide 運行時中使用!后者是用在瀏覽器中的 Python 解釋器,也是PyScript 和 Jupyterlite 框架的技術基礎。這對 Python 的前端開發(fā)有重大作用,未來可期。
11、gnuplotlib:基于 gnuplot 的 numpy 繪圖后端[28]
Gnuplot 是一個強大的開源繪圖工具,用于生成各種類型的二維和三維圖表。這個項目將它與 Numpy 結(jié)合,充分利用數(shù)據(jù)處理和繪圖能力。
12、history_rag:用 RAG 搭建中國歷史問答應用[29]
RAG(檢索增強生成)+向量數(shù)據(jù)庫搭建一個中國歷史知識問答應用,支持“Milvus方案“(本地)和“Zilliz Cloud Pipelines方案”(云上),提供基于gradio的 Web UI 界面。默認使用 GPT4 模型,可輕松切換其它 LLM。
??贈書福利
不定期的福利活動,本期贈書 5 本《AI 繪畫實戰(zhàn):Midjourney從新手到高手》,開獎時間 2 月 10 日(春節(jié))。請給 Python貓公眾號發(fā)送數(shù)字“8038”,獲取抽獎小程序碼。
這本書介紹了 Midjourney 繪畫的各種使用方法與技巧,從基礎理論到實戰(zhàn)應用,一本書輕松玩轉(zhuǎn)當下最火的 AI 繪畫,帶你領略無限藝術可能。
??歡迎訂閱
- 微信公眾號[30]:除更新周刊外,還發(fā)布其它原創(chuàng)作品,并轉(zhuǎn)載一些優(yōu)質(zhì)文章。(可加好友,可加讀者交流群)
- 博客[31] 及 RSS[32]:我的獨立博客,上面有歷年原創(chuàng)/翻譯的技術文章,以及從 2009 年以來的一些隨筆。
- 郵件[33] 及 RSS[34]:在 Substack 上開通的頻道,滿足你通過郵件閱讀時事通訊的訴求。
- Github[35]:你可以獲取本周刊的 Markdown 源文件,做任何想做的事!
- Telegram[36]:除了發(fā)布周刊的通知外,我將它視為一個“副刊”,補充發(fā)布更加豐富的資訊。
- Twitter[37]:我的關注列表里有大量 Python 相關的開發(fā)者與組織的賬號。
投稿: https://github.com/chinesehuazhou/python-weekly
[2]電報頻道: https://t.me/pythontrendingweekly
[3]使用 Django、Django REST 和 Next.js 構建全棧項目: https://dev.to/koladev/building-a-fullstack-application-with-django-django-rest-nextjs-3e26
[4]使用 SQL、Node.js、Django 和 Next.js 構建儀表板項目: https://dev.to/andrewbaisden/a-day-in-the-life-of-a-developer-building-a-dashboard-app-with-sql-nodejs-django-and-nextjs-5en7
[5]用 Profila 分析你的 Numba 代碼: https://pythonspeed.com/articles/numba-profiling/
[6]Profila: https://github.com/pythonspeed/profila
[7]Python datetime 標準庫的 10 個陷阱: https://dev.arie.bovenberg.net/blog/python-datetime-pitfalls/
[8]使用 Python 糾正語法的 4 種方法: https://www.listendata.com/2024/01/4-ways-to-correct-grammar-with-python.html
[9]Python 調(diào)試技巧: https://www.syntaxerror.tech/syntax-error-11-debugging-python/
[10]調(diào)試 Python 與 C 語言混合的項目: https://developer.nvidia.com/blog/debugging-mixed-python-and-c-language-stack/
[11]分析“使用 Python 和 2MB RAM 對一百萬個 32 位整數(shù)進行排序”: https://www.bitecode.dev/p/analyzing-sorting-a-million-32-bit
[12]Sorting a million 32-bit integers in 2MB of RAM using Python: http://neopythonic.blogspot.com/2008/10/sorting-million-32-bit-integers-in-2mb.html
[13]使用 Python + Pylasu 實現(xiàn)語言解析器: https://tomassetti.me/implement-parsers-with-pylasu/
[14]動態(tài)規(guī)劃不是黑魔法: https://qsantos.fr/2024/01/04/dynamic-programming-is-not-black-magic/
[15]什么時候應避免靜態(tài)類型檢查?: https://typing.readthedocs.io/en/latest/source/typing_anti_pitch.html
[16]實用指南:用 Python 運行開源的 LLM: https://christophergs.com/blog/running-open-source-llms-in-python
[17]Python 潮流周刊第一季精華合集(1~30): https://pythoncat.top/posts/2023-12-11-weekly
[18]excelCPU:用 Excel 實現(xiàn)的 16 位 CPU 和相關文件: https://github.com/InkboxSoftware/excelCPU
[19]whenever:萬無一失的 Python 日期時間: https://github.com/ariebovenberg/whenever
[20]DeepSeek-Coder:讓代碼自己編寫: https://github.com/deepseek-ai/deepseek-coder/
[21]fastcrud:FastAPI 的異步 CRUD 操作: https://github.com/igorbenav/fastcrud
[22]leptonai:簡化 AI 服務構建的 Pythonic 框架: https://github.com/leptonai/leptonai
[23]gpt-newspaper:用 GPT 創(chuàng)建個性化報紙: https://github.com/assafelovic/gpt-newspaper
[24]apprise:幾乎適用于所有平臺的通知推送: https://github.com/caronc/apprise
[25]procrastinate:基于 PostgreSQL 的 Python 任務隊列: https://github.com/procrastinate-org/procrastinate
[26]flent:靈活的網(wǎng)絡基準測試工具: https://github.com/tohojo/flent
[27]urllib3:新版本支持在瀏覽器發(fā)起 HTTP 請求: https://github.com/urllib3/urllib3/releases/tag/2.2.0
[28]gnuplotlib:基于 gnuplot 的 numpy 繪圖后端: https://github.com/dkogan/gnuplotlib
[29]history_rag:用 RAG 搭建中國歷史問答應用: https://github.com/wxywb/history_rag
[30]微信公眾號: https://qinglite-1253448069.cos.ap-shanghai.myqcloud.com/web/e60bd68bc8457412c2aa53620ba674452ec756f7
[31]博客: https://pythoncat.top
[32]RSS: https://pythoncat.top/rss.xml
[33]郵件: https://pythoncat.substack.com
[34]RSS: https://pythoncat.substack.com/feed
[35]Github: https://github.com/chinesehuazhou/python-weekly
[36]Telegram: https://t.me/pythontrendingweekly
[37]Twitter: https://twitter.com/chinesehuazhou
如果你覺得本文有幫助 請慷慨 分享 和 點贊 ,感謝啦 !
