---
title: 'Python 潮流周刊#38：Django + Next.js 构建全栈项目'
description: '本期周刊分享了 12 篇文章，12 个开源项目。赠书福利送书5本，提前祝大家春节快乐！'
pubDate: 2024-02-03
author: '豌豆花下猫'
---

你好，我是猫哥。这里每周分享优质的 Python、AI 及通用技术内容，大部分为英文。本周刊开源，欢迎[投稿](https://github.com/chinesehuazhou/python-weekly)。另有[电报频道](https://t.me/pythontrendingweekly)作为副刊，补充发布更加丰富的资讯，欢迎关注。

**提醒：本期有赠书活动，详见文末；春节期间，本周刊预计停更一周，祝大家春节快乐！**

## 🦄文章&教程

1、[使用 Django、Django REST 和 Next.js 构建全栈项目](https://dev.to/koladev/building-a-fullstack-application-with-django-django-rest-nextjs-3e26)

Django 和 Nextjs 是后端和前端开发中非常强大 Web 框架，这篇教程用 Django 4.2 和 Next.js 13 开发了一个餐厅菜单管理项目。

2、[使用 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)

比上一则分享更为全面的全栈项目教程，除了实现 CURD 操作，还涉及仪表板、表单筛选、Tailwind CSS、不同数据库的使用，以及分别使用 Node.js 和 Django 构建后端等内容。

3、[用 Profila 分析你的 Numba 代码](https://pythonspeed.com/articles/numba-profiling/)

Numba 是提升 Python 代码性能的常见方案。作者开源了一个 [Profila](https://github.com/pythonspeed/profila) 库，专用于分析 Numba 代码本身的性能问题，文章介绍了它的使用方法，以及关于性能分析的三点局限性。

4、[Python datetime 标准库的 10 个陷阱](https://dev.arie.bovenberg.net/blog/python-datetime-pitfalls/)

作者分析了`datetime` 模块的 10 个陷阱，同时介绍了主流的三方库的情况（例如 `arrow` 、`pendulum` 、`DateType`、`heliclockter`），发现它们大多存在同样的问题。什么样才是更好的日期时间库？作者开源了一个库，试图解决文中的问题。

5、[使用 Python 纠正语法的 4 种方法](https://www.listendata.com/2024/01/4-ways-to-correct-grammar-with-python.html)

这里的“语法”指的是写作语法，不是编程语法。文章介绍了`language-tool-python` 、`Gramformer` 、`Ginger` 和 `pyaspeller` 4 个库用于检查和自动纠正语法错误。

6、[Python 调试技巧](https://www.syntaxerror.tech/syntax-error-11-debugging-python/)

这是作者在 2023 PyCon Sweden 演讲的文字版，分享了他的调试思维、调试工具和技术，工具例如`snoop`、`pdb/ipdb`、`PuDB`、`web-pdb`、`birdseye`、`Kolo` 等等。

7、[调试 Python 与 C 语言混合的项目](https://developer.nvidia.com/blog/debugging-mixed-python-and-c-language-stack/)

调试很难，跨多语言调试更难。文章介绍了如何调试多语言问题，使用 GDB 来调试 Python+C 语言，定位和解决死锁问题，分享了一些调试的经验。

8、[分析“使用 Python 和 2MB RAM 对一百万个 32 位整数进行排序”](https://www.bitecode.dev/p/analyzing-sorting-a-million-32-bit)

Guido 在 2008 年写了 [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) ，这篇文章是对它作的分析解读。解决方案中用到了不太常见的模块：`struct`、`array`、`heapq` ，也用了上下文管理器和生成器等技术。

9、[使用 Python + Pylasu 实现语言解析器](https://tomassetti.me/implement-parsers-with-pylasu/)

如何用 Python 开发一个解析器？这篇教程用`Pylasu` 定义 AST，使用`ANTLR` 生成解析器，实现从 ANTLR 解析树到 Pylasu AST 的转换，最后构建出带 CLI 的玩具编程语言解析器。

10、[动态规划不是黑魔法](https://qsantos.fr/2024/01/04/dynamic-programming-is-not-black-magic/)

动态规划什么编程技术？相比其它方案，它的特点和优势是什么？文章从常见编程问题出发，使用缓存、优化缓存、动态规划逐步深入，揭开动态规划的神秘面纱。

11、[什么时候应避免静态类型检查？](https://typing.readthedocs.io/en/latest/source/typing_anti_pitch.html)

Python 支持用类型提示，但这并不是强制的。事实上，有很多情况下并不建议使用类型提示。`typing` 模块的这篇文档列举了一些不推荐使用类型提示的原因。

12、[实用指南：用 Python 运行开源的 LLM](https://christophergs.com/blog/running-open-source-llms-in-python)

在个人笔记本电脑上如何运行大语言模型？这篇教程介绍了在不同操作系统上运行`llama.cpp` 的完整过程，例如选择和下载模型、提示词设置、使用 GBNF 语法格式化 LLM 输出、流式响应、多模态模型等。

🎁**Python潮流周刊**🎁每 30 期为一季，第一季的精华内容已整理成一篇，方便你随时查看。在线访问地址：[Python 潮流周刊第一季精华合集（1~30）](https://pythoncat.top/posts/2023-12-11-weekly)

## 🐿️项目&资源

1、[excelCPU：用 Excel 实现的 16 位 CPU 和相关文件](https://github.com/InkboxSoftware/excelCPU)

才发布一周就已近 3K star 的火爆项目！`CPU.xlsx` 文件提供了 16 位 CPU、16 个通用寄存器、128KB RAM 和 128x128 显示区域。使用 Python 进行编译。（star 3K）

2、[whenever：万无一失的 Python 日期时间](https://github.com/ariebovenberg/whenever)

前文提及过的日期时间库，克服了标准库和其它三方库没有很好解决的一些问题。

3、[DeepSeek-Coder：让代码自己编写](https://github.com/deepseek-ai/deepseek-coder/)

它由一系列代码语言模型组成，每个模型都用 2T token 训练，提供多种型号尺寸，拥有高级代码补全能力，在各项基准测试中表现亮眼。（star 4.3K）

![与其它模型的基准测试评分对比](https://img.pythoncat.top/2024-02-03-coder.png)

4、[fastcrud：FastAPI 的异步 CRUD 操作](https://github.com/igorbenav/fastcrud)

特性有：完全异步、SQLAlchemy 2.0、强大的 CRUD、动态构建复杂查询、高级 SQL 联结、基于偏移或光标的分页、模块化可扩展、自动生成接口。

5、[leptonai：简化 AI 服务构建的 Pythonic 框架](https://github.com/leptonai/leptonai)

让你轻松用 Python 代码构建 AI 服务，主要特性：良好的抽象、仅需几行代码即可启动模型、内置常见模型（如 Llama、SDXL、Whisper 等）的示例、自动批处理、后台任务等。（star 1.9K）

6、[gpt-newspaper：用 GPT 创建个性化报纸](https://github.com/assafelovic/gpt-newspaper)

让 AI 根据你的个人品味和兴趣来策划选题、撰写、设计和编辑内容，由 6 个专业 agent 组成，支持搜索网络最新内容，聚合知名的新闻源。

7、[apprise：几乎适用于所有平台的通知推送](https://github.com/caronc/apprise)

纯 Python 开发的轻量型消息推送库，支持通过大多数服务发送通知，例如 Telegram、Discord、Slack、Amazon SNS、Gotify 等等等，支持短信、邮件、系统桌面等多种形式。（star 9.7K）

8、[procrastinate：基于 PostgreSQL 的 Python 任务队列](https://github.com/procrastinate-org/procrastinate)

一个基于 PostgreSQL 的分布式任务处理库，提供 Django 集成，易于与 ASGI 框架一起使用。支持异步、周期任务、重试、任意任务锁等功能。

9、[flent：灵活的网络基准测试工具](https://github.com/tohojo/flent)

它可以同时运行多个 netperf/iperf/ping 实例并聚合结果，通过交互式 GUI 和可扩展的绘图功能展示数据，支持本地和远程主机，支持采集 CPU 使用率、WiFi、qdisc 和 TCP 套接字统计信息等。

![](https://img.pythoncat.top/flent-screenshot.png)

10、[urllib3：新版本支持在浏览器发起 HTTP 请求](https://github.com/urllib3/urllib3/releases/tag/2.2.0)

`urllib3` 发布了 2.2.0 版本，支持在`Pyodide` 运行时中使用！后者是用在浏览器中的 Python 解释器，也是`PyScript` 和 `Jupyterlite` 框架的技术基础。这对 Python 的前端开发有重大作用，未来可期。

11、[gnuplotlib：基于 gnuplot 的 numpy 绘图后端](https://github.com/dkogan/gnuplotlib)

`Gnuplot` 是一个强大的开源绘图工具，用于生成各种类型的二维和三维图表。这个项目将它与 Numpy 结合，充分利用数据处理和绘图能力。

12、[history_rag：用 RAG 搭建中国历史问答应用](https://github.com/wxywb/history_rag)

RAG（检索增强生成）+向量数据库搭建一个中国历史知识问答应用，支持“Milvus方案“（本地）和“Zilliz Cloud Pipelines方案”（云上），提供基于`gradio`的 Web UI 界面。默认使用 GPT4 模型，可轻松切换其它 LLM。

## 🐢赠书福利

不定期的福利活动，本期赠书 **5** 本《AI 绘画实战：Midjourney从新手到高手》，开奖时间 **2 月 10 日**（春节）。请给 **Python猫**公众号发送数字“**8038**”，获取抽奖小程序码。

这本书介绍了 Midjourney 绘画的各种使用方法与技巧，从基础理论到实战应用，一本书轻松玩转当下最火的 AI 绘画，带你领略无限艺术可能。

![](https://img.pythoncat.top/2024-02-03_ai.png)

## 🐼欢迎订阅

- [微信公众号](https://img.pythoncat.top/python_cat.jpg)：除更新周刊外，还发布其它原创作品，并转载一些优质文章。（可加好友，可加读者交流群）
- [博客](https://pythoncat.top) 及 [RSS](https://pythoncat.top/rss.xml)：我的独立博客，上面有历年原创/翻译的技术文章，以及从 2009 年以来的一些随笔。
- [邮件](https://pythoncat.substack.com) 及 [RSS](https://pythoncat.substack.com/feed)：在 Substack 上开通的频道，满足你通过邮件阅读时事通讯的诉求。
- [Github](https://github.com/chinesehuazhou/python-weekly)：你可以获取本周刊的 Markdown 源文件，做任何想做的事！
- [Telegram](https://t.me/pythontrendingweekly)：除了发布周刊的通知外，我将它视为一个“副刊”，补充发布更加丰富的资讯。
- [Twitter](https://twitter.com/chinesehuazhou)：我的关注列表里有大量 Python 相关的开发者与组织的账号。