Repolode
dropseed

dropseed/plain

一个从 Django 分叉而来的 Python Web 框架,强调类型化、Postgres 专用 ORM,并内置面向 AI 编码代理的工具。

可替代:Django

Star
1,044
Fork
28
未关闭 Issue
16
最近提交
3天前

这是什么?

Plain 是一个用于构建 Web 应用的 Python 框架,最初分叉自 Django,之后围绕显式、带类型的代码风格重新设计。模型字段以带注解的属性声明,类型信息会贯穿视图、表单和 URL 路由。模型只支持 Postgres;前端使用 Jinja2 模板、htmx 和 Tailwind CSS,Python 工具链采用 uv、ruff 和 ty。

框架内置 OpenTelemetry 链路追踪和慢查询检测,无需额外配置即可发现 N+1 查询问题。它还提供面向 AI 代理的功能:项目规则文件、支持搜索和类型签名视图的命令行文档工具,以及用于安装包、升级版本、性能优化和提交 Bug 报告的斜杠命令技能。

项目由 31 个官方包组成,涵盖认证、会话、REST API、MCP 服务、后台任务、邮件、缓存、管理后台、功能开关,以及 OAuth 和魔术链接登录。需要 Python 3.14 及以上版本。

核心功能

  • 01模型字段采用带注解的类型声明,类型贯穿视图、表单和 URL。
  • 02仅支持 Postgres 的 ORM,约束在模型选项中声明。
  • 03内置 OpenTelemetry 链路追踪和慢查询检测。
  • 04命令行文档支持搜索,并可输出类型签名供代理使用。
  • 05包含 31 个官方包,覆盖认证、后台任务、API、管理后台等。
  • 06前端使用 Jinja2 模板,配合 htmx 和 Tailwind CSS。

适用场景

  • 用 Python 构建服务端渲染、基于 Postgres 的 Web 应用。
  • 希望使用类型明确、风格类似 Django 的代码,并由统一框架维护的团队。
  • 希望 AI 编码代理依据类型签名和内置文档工作的项目。
  • 需要后台任务、邮件和 OAuth 登录且希望统一生态的应用。

快速上手

  1. 1

    用 uv 创建项目

    uvx plain-start my-app
  2. 2

    按官网完整教程操作

使用前须知

  • 模型仅支持 Postgres,因此需要 PostgreSQL 数据库。
  • 需要 Python 3.14 或更高版本。
  • 项目元数据中未列出许可证,使用权限不明确。

收录于专题

标签

常见问题

plain 是什么?
一个从 Django 分叉而来的 Python Web 框架,强调类型化、Postgres 专用 ORM,并内置面向 AI 编码代理的工具。 Plain 是一个用于构建 Web 应用的 Python 框架,最初分叉自 Django,之后围绕显式、带类型的代码风格重新设计。模型字段以带注解的属性声明,类型信息会贯穿视图、表单和 URL 路由。模型只支持 Postgres;前端使用 Jinja2 模板、htmx 和 Tailwind CSS,Python 工具链采用 uv、ruff 和 ty。
plain 可以免费使用吗?用的什么许可证?
plain 没有声明许可证。代码虽然公开,但没有许可证就没有明确的使用授权,正式使用前建议先联系作者。
plain 还在维护吗?
活跃维护中。plain 最近一次提交是在 2026年10月20日。
plain 适合用来做什么?
用 Python 构建服务端渲染、基于 Postgres 的 Web 应用。 希望使用类型明确、风格类似 Django 的代码,并由统一框架维护的团队。 希望 AI 编码代理依据类型签名和内置文档工作的项目。 需要后台任务、邮件和 OAuth 登录且希望统一生态的应用。
plain 怎么安装和运行?
用 uv 创建项目: uvx plain-start my-app 按官网完整教程操作
在哪里获取 plain?
源代码和安装说明在 GitHub 上:https://github.com/dropseed/plain

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目