---
title: 'Python 潮流周刊#18：Flask、Streamlit、Polars 的学习教程'
pubDate: 2023-09-02
author: '豌豆花下猫'
---

你好，我是猫哥。这里每周分享优质的 Python、AI 及通用技术内容，大部分为英文。标题取自其中三则分享，不代表全部内容都是该主题，特此声明。

本周刊由 **Python猫** 出品，精心筛选国内外的 250+ 信息源，为你挑选最值得分享的文章、教程、开源项目、软件工具、播客和视频、热门话题等内容。愿景：帮助所有读者精进 Python 技术，并增长职业和副业的收入。

[微信](https://img.pythoncat.top/python_cat.jpg) | [博客](https://pythoncat.top) | [邮件](https://pythoncat.substack.com) | [Github](https://github.com/chinesehuazhou/python-weekly) | [Telegram](https://t.me/pythontrendingweekly) | [Twitter](https://twitter.com/chinesehuazhou) 

为了方便读者获取原始内容，我已将周刊的 Markdown 文件归档在 Github，请通过以下链接获取：[https://github.com/chinesehuazhou/python-weekly](https://github.com/chinesehuazhou/python-weekly)

## 🦄文章&教程

1、[一份深入探索 Flask 的指南](https://testdriven.io/guides/flask-deep-dive)

由系列文章组成的 Flask 学习指南，深入了解 Flask 的内部结构、核心特性和功能，涵盖主题有程序和请求上下文、Werkzeug、会话、安全（防CSRF）、测试、2.0 版本的异步等。

2、[使用 PyMuPDF 识别与提取表格](https://artifex.com/blog/table-recognition-extraction-from-pdfs-pymupdf-python)

识别和处理 PDF 文件中的表格是件困难的事，PyMuPDF 最新版本 1.23.0 提供了从 PDF 中提取表格的功能！可以将提取内容交给 pandas 处理，可以导出 Excel 和 CSV 格式的文件。

3、[深入介绍 Python 3.12 中的永生对象](https://codeconfessions.substack.com/p/understanding-immortal-objects-in)

周刊[第 16 期](https://pythoncat.top/posts/2023-08-19-weekly)分享了 Instagram 在 Python 3.12 引入永生对象的故事，而这里分享的文章深入剖析解释器源码，为我们回答了以下问题：为什么要引入永生对象？它对性能有什么影响？它是如何实现的（如 None 对象和小整数），如何做到兼容旧版本的接口的？

4、[Python 中下划线的十种用法](https://mathspp.com/blog/pydonts/usages-of-underscore)

你知道 Python 中的下划线有哪些用法么？这篇文章介绍了：REPL 中的用法、作变量名的前缀和后缀时的四种用法、作为赋值“接收器”的两种用法、新 match-case 语法中的用处、用作频繁调用的函数别名、大额数字中增加可读性。

5、[Python Asyncio 之网络编程方法详解](https://so1n.me/2023/08/29/python_asyncio_lib_network/)

Asyncio 不仅提供了简单的`Socket`接口，还基于它提供了`Protocol`&`Transport`接口以及更高级的`Stream`接口，大大的减轻了开发者进行网络编程的心理负担。文章主要介绍了这几个接口的简单使用以及对应的原理分析。

6、[给初学者的 Streamlit 学习指南](https://dev.to/codemaker2015/streamlit-cheatsheet-for-beginners-706)

Streamlit 是一个用于创建和部署 Web 程序的框架，广泛用于机器学习和数据科学领域。这篇教程介绍了它的安装以及常用组件的使用。

7、[如何在 FastAPI 应用中使用 Tailwind CSS 和 SQLAlchemy](https://ezzeddin.hashnode.dev/fastapi-tailwind-sqlalchemy)

FastAPI 是一个轻量级框架，通常需要集成其它组件搭配使用。这篇文章介绍了如何将 FastAPI 与 Jinja2 模板引擎、Tailwind CSS 以及 **SQLAlchemy** 结合，创建出一个好用的开发脚手架。

8、[Python 如何不作排序但保持数据有序](https://www.bitecode.dev/p/how-not-to-sort-in-python)

文章介绍了 Python 堆排序/优先队列、二分查找、有序容器的相关使用，它们有更好的时间复杂度或适用场景，是比暴力搜索和暴力排序更值得采用的解决方案。

9、[用 Django 发送带有验证链接的电子邮件](https://delighto.hashnode.dev/send-verification-email-django)

我们经常会在注册一些账号后收到一封验证邮件，只有在链接的有效期内点击它才能完成账号注册。这篇教程介绍了如何用 Django 来实现这个功能，这是一个简短而完整的练手项目。

10、[探索全球多样性：Pyetho — 用于了解国家及其语言的 Python 库](https://medium.com/@i18nsolutionspy/exploring-global-diversity-pyetho-python-library-for-language-and-country-insights-4a688958ea83)

文章介绍了[Pyetho](https://github.com/i18nsolutionspy/Pyetho) 这个库的基本使用，它主要包含了全球国家及其语言的相关信息，采用 ISO 标准。收录有 195 个国家，我查询了下，中国有 285 种语言。除了国家和语言基本信息外，其它功能包括：查询某种语言的使用人数、查询某种语言在哪些国家使用、查询某种语言的谱系家族、查询所有的语言家族，等等。

11、[Polars：快如闪电的 DataFrame 库](https://realpython.com/polars-python/)

Polars 是数据分析领域的新秀，底层是用 Rust 写的，拥有超高性能。这是一篇详细的教程，内容包括：它的 DataFrame、表达式和上下文、惰性 API（LazyFrame）、与外部数据源集成、与 Numpy 和 pandas 的集成，等等。

12、[深入学习数据结构与算法：C++、Swift、Python、Java、C#、JavaScript](https://dev.to/khaledhosseini/data-structures-and-algorithms-for-multi-language-programmers-c-swift-python-java-c-javascript-alp)

超长文预警！文章探索了不同编程语言中常见数据结构的实现，使用简洁的动画和图表直观介绍了相关的知识。主要涉及线性数据结构，如数组、动态数组、链表、循环链表、栈、队列、哈希表、集合，等等。数据结构当然离不开算法和时间复杂度，文中也有对应介绍。

🎁**Python潮流周刊**🎁已免费发布了 18 期，访问下方链接，即可查看全部内容：[https://pythoncat.top/tags/weekly](https://pythoncat.top/tags/weekly) 

如果你觉得周刊有价值，请表达小小心意，赞赏一下猫哥吧~~

![](https://img.pythoncat.top/support_pythoncat.png)

## 🐿️项目&资源

1、[fastapi-users：开箱即用的 FastAPI 用户管理库](https://github.com/fastapi-users/fastapi-users)

为 FastAPI 添加用户注册与身份验证模块，主要特性有：可扩展的用户模型、注册/登录/重置密码/邮箱验证、OAuth2 登录流程、可定制的数据库后端、支持多种身份验证，等等。（star 3.3K）

2、[upiano：命令行里的钢琴](https://github.com/eliasdorneles/upiano)

在命令行里弹钢琴是种什么体验？！安装这个库后，你就可以用鼠标和键盘来弹钢琴了。

3、[hrequests：requests 库的替代品](https://github.com/daijro/hrequests)

一个比 requests 库更简单、可配置、功能丰富的库，使用 gevent 实现高性能并发，支持 HTTP/2，JSON 序列化比标准库快 10 倍，代码使用类型提示，100% 线程安全。

4、[wisdomInterrogatory：智海-录问法律大模型](https://github.com/zhihaiLLM/wisdomInterrogatory)

由浙江大学、阿里巴巴达摩院以及华院计算共同设计研发的法律大模型，以“普法共享和司法效能提升”为目标。模型基座是 Baichuan-7B，预训练的数据包括法律文书、司法案例以及法律问答数据，共 40 G。

![](https://img.pythoncat.top/2023-09-02-wisdomInterrogatory.png)

5、[awesome-systematic-trading：一个精选的系统化交易列表](https://github.com/edarchimbaud/awesome-systematic-trading)

系统化交易/量化交易是依据规则和算法进行自动化交易的策略，这个仓库收录了一系列资源：库、软件、策略、书籍、博客、论文、视频，等等。（star 1.1K）

6、[Qwen-VL：阿里通义千问-VL 模型的官方库](https://github.com/QwenLM/Qwen-VL)

**Qwen-VL** 是阿里云研发的大规模视觉语言模型，可以以图像、文本、检测框作为输入，并以文本和检测框作为输出。支持多语言、多图交错对话。评测结果显示，Qwen-VL 在多个 VL 任务上相比目前 SOTA 的 Generalist Models 都有明显优势。

7、[h2ogpt：私人文档+图像的问答](https://github.com/h2oai/h2ogpt)

查询和总结你的文档，或者与本地私有的 GPT LLM 聊天。支持大部分文档，支持 LLaMa2、Falcon、Vicuna、AutoGPTQ、LORA 等，支持 Linux、Docker、MAC 和 Windows。（star 7.2K）

8、[refact：开源编码助手，支持自动补全、代码重构、代码分析](https://github.com/smallcloudai/refact)

Copilot 的开源替代方案，可自托管或使用云服务。支持 starcoder、starchat、llama2、wizardlm 等开源模型，支持代码补全、重构、解释、分析、优化与修复错误等功能。

9、[dify：创建自己的 AI 应用](https://github.com/langgenius/dify)

dify 是 Do It For You 的简写，是一个易用的 LLMOps 平台，支持快速创建出自己的 AI 应用。核心能力：通过 Langchain 支持主流的大语言模型（包括讯飞星火、文心一言、通义千问）、可视化编排 Prompt、支持添加数据集、支持插件、支持数据标注与改进。（star 8K）

10、[dara：轻松创建交互式 Web 应用程序](https://github.com/causalens/dara)

一个低代码开发框架，与 Plotly Dash、Streamlit 和 Shiny 相似，支持快速创建仪表板应用。后端使用 FastAPI，前端是一个基于 React  的 UI。

![dara创建应用示例](https://img.pythoncat.top/2023-09-02_dara.png)

## 🐱赞助&支持

如果你喜欢周刊，请分享给其他需要的同学，让更多人可以从中受益～

如果你觉得周刊有价值，请随意[赞赏](https://img.pythoncat.top/wechat_code.png) 或 [买杯咖啡](https://www.buymeacoffee.com/pythoncat) 进行支持！

如果你想帮助周刊办得更好，欢迎向我们投稿或提出建议：[投稿/建议通道](https://github.com/chinesehuazhou/python-weekly/issues/new)

如果你是品牌方或广告主，欢迎私信我，洽谈赞助与合作事项。

## 🐼欢迎订阅

- [微信公众号](https://img.pythoncat.top/python_cat.jpg)：除更新周刊外，还发布其它原创作品，并转载一些优质文章。（可加好友，可加读者交流群）

- [博客](https://pythoncat.top) 及 [RSS](https://pythoncat.top/rss.xml)：我的独立博客，上面有历年原创/翻译的技术文章，以及从 2009 年以来的一些随笔。

- [Github](https://github.com/chinesehuazhou/python-weekly)：你可以获取本周刊的 Markdown 源文件，做任何想做的事！

- [邮件](https://pythoncat.substack.com)：在 Substack 上开通的频道，满足你通过邮件阅读时事通讯的诉求。

- [Telegram](https://t.me/pythontrendingweekly)：除了发布周刊的通知外，我将它视为一个“副刊”，补充发布更加丰富的资讯。

- [Twitter](https://twitter.com/chinesehuazhou)：我的关注列表里有大量 Python 相关的开发者与组织的账号。
