惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Cisco Talos Blog
Cisco Talos Blog
阮一峰的网络日志
阮一峰的网络日志
云风的 BLOG
云风的 BLOG
D
Docker
Vercel News
Vercel News
IT之家
IT之家
Recent Announcements
Recent Announcements
Last Week in AI
Last Week in AI
V
Visual Studio Blog
Engineering at Meta
Engineering at Meta
腾讯CDC
Google DeepMind News
Google DeepMind News
I
InfoQ
博客园 - 三生石上(FineUI控件)
Apple Machine Learning Research
Apple Machine Learning Research
The GitHub Blog
The GitHub Blog
博客园 - Franky
The Cloudflare Blog
A
About on SuperTechFans
有赞技术团队
有赞技术团队
Y
Y Combinator Blog
T
Tenable Blog
P
Proofpoint News Feed
Recorded Future
Recorded Future
Security Latest
Security Latest
H
Hackread – Cybersecurity News, Data Breaches, AI and More
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
博客园 - 聂微东
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
Google Online Security Blog
Google Online Security Blog
酷 壳 – CoolShell
酷 壳 – CoolShell
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Simon Willison's Weblog
Simon Willison's Weblog
The Last Watchdog
The Last Watchdog
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
N
News and Events Feed by Topic
TaoSecurity Blog
TaoSecurity Blog
U
Unit 42
The Hacker News
The Hacker News
Martin Fowler
Martin Fowler
T
Threat Research - Cisco Blogs
NISL@THU
NISL@THU
F
Full Disclosure
M
MIT News - Artificial intelligence
人人都是产品经理
人人都是产品经理
Hugging Face - Blog
Hugging Face - Blog
V
V2EX
Project Zero
Project Zero

Stray Episode

From OPC to NPC 如何手搓一辆公路车 PXE自动化无人值守安装Ubuntu 捡垃圾,H3C TX1801 plus路由器刷OpenWRT AI时代,人人都是架构师(bushi 捡垃圾,折腾一下HP 544+ FLR 老板,来杯IPA,像我生活一样苦的 偷一个ICC文件,把你的相机变哈苏 基于泰山派的 PiKVM 电子佛曰:我看你是完全不懂哦 一个按键都被你玩出花——《节奏医生》 为什么学渣不喜欢上学 使用Telepresence开发调试k8s应用 因为山就在那里,《Celeste蔚蓝》 只要开始摆烂,那我就是无敌的
现代Python CRUD技术栈
Windfarer · 2024-05-03 · via Stray Episode

作为一名资深Python CRUD boy,在今天用flask和django干这些体力活已经稍显过时,flask这些年来功能并没太大进步,想用什么还是得自己折腾,在工程化方面比较考验开发者的个人素养。而django的虽然功能完善,但它的笨重在需要深度定制时,又显得束手束脚。

近些年来FastAPI异军突起,在成熟度上已经足够赶上这些老古董们。为了让我们的体力活干得又快又好,腾出更多的时间摸鱼,在这里整理下我们在现在这个时间节点(2024年)应该用什么CRUD,技术选型需要注意适用场景,本文选型适用于以下场景:

  • 项目前后端分离,或以实现微服务/朴素的HTTP接口为主
  • 认证模型简单,最多JWT

对于不不满足以上条件的项目,或者在搞外包,建议直接Django,看看Django REST Framework(基于Django的RESTful API框架)和wagtail(基于Django的可定制化CMS)是否满足您的需要

技术栈

  • Pydantic 可以认为它是这套技术栈的核心,它作为一个Schema定义库,能够把配置解析,后面的ORM定义和查询到前面的API定义,参数校验,序列化等事情统一完成,减少手工转换的麻烦,能够极大提升生产力。
  • FastAPI API框架,长得样子和flask很像,但功能更加完善。支持同步和异步,使用Pydantic作为数据模型,可以根据接口参数自动生成API文档。
  • SQLModel 使用Pydantic进行SQL数据库的orm schema定义和查询
  • beanie 如果用MongoDB,那么可以试试这个,也是使用Pydantic做定义
  • httpx 用来发http请求的库,支持同步和异步,用来替换掉requests
  • typer 命令行参数解析库
  • loguru 一个功能很完善的logging库,比Python内置的好用不少
  • rich 优化print输出样式的库,打印东西更美观好看,在调试时十分有用
  • arrow 日期和时间库
  • celery 任务队列,有一些定时任务或者异步后台任务要跑,可以用这个库,主要支持Redis和RabbitMQ。这也是个古董了,但一直没有靠谱的替代品。
  • rq 如果任务不太重要,或者不喜欢上面的celeryrq,需要轻量级的解决方案,可以试试这个只支持Redis的。

工具

  • pyenv python版本管理
  • poetry 虚拟环境和依赖库管理,使用体验比较像nodejs这边的yarn
  • pipx python工具管理