Show HN: Plain – The full-stack Python framework designed for humans and agents | 海外技术热榜 | 海外技术热榜

4 阅读7分钟

Show HN: Plain – The full-stack Python framework designed for humans and agents | 海外技术热榜

原文链接

🔗 Show HN: Plain – The full-stack Python framework designed for humans and agents

翻译说明

本文翻译自Hacker News最新热门技术文章,内容仅供学习参考,版权归原作者所有。

完整翻译内容

跳到内容 导航菜单 切换导航 登录 外观设置 - 平台 - AI 代码创建 - GitHub Copilot 使用 AI 编写更好的代码 - GitHub Spark构建和部署智能应用程序 - GitHub 模型管理和比较提示 - MCP 注册表^(新)集成外部工具 - 开发人员工作流程 - 操作自动化任何工作流程 - Codespaces即时开发环境 - 问题计划和跟踪工作 - 代码审查管理代码更改 - 应用程序安全 - GitHub 高级安全性查找并修复漏洞 - 代码安全性在构建时保护您的代码 - 秘密保护在泄漏开始之前阻止泄漏 - 探索 - 为什么选择 GitHub - 文档 - 博客 - 变更日志 - Marketplace 查看所有功能 - 解决方案 - 按公司规模 - 企业 - 中小型团队 - 初创公司 - 非营利组织 - 按使用案例 - 应用程序现代化 - DevSecOps - DevOps - CI/CD - 查看所有用例 - 按行业 - 医疗保健- 金融服务 - 制造业 - 政府 - 查看所有行业 查看所有解决方案 - 资源 - 按主题探索 - 人工智能 - 软件开发 - 开发运营 - 安全性 - 查看所有主题 - 按类型探索 - 客户案例 - 活动和网络研讨会 - 电子书和报告 - 业务见解 - GitHub 技能 - 支持和服务 - 文档 - 客户支持 - 社区论坛 - 信任中心 - 合作伙伴 查看所有内容来源 - 开源 - 社区 - GitHub SponsorsFund 开源开发人员 - 项目 - 安全实验室 - 维护者社区 - 加速器 - GitHub Stars - 存档计划 - 存储库 - 主题 - 趋势 - 集合 - 企业 - 企业解决方案 - 企业平台人工智能驱动的开发者平台 - 可用的附加组件 - GitHub 高级安全性企业级安全功能 - Copilot for Business 企业级 AI 功能 - 高级支持企业级 24/7 支持 - 定价 搜索或跳转到... 搜索代码、存储库、用户、问题、拉取请求... 搜索 清除搜索语法提示 提供反馈 我们会阅读每条反馈,并非常认真地对待您的输入。 请附上我的电子邮件地址,以便与我联系 取消 提交反馈 已保存的搜索 使用已保存的搜索更快地筛选结果 姓名查询 要查看所有可用的限定符,请参阅我们的文档。 取消 创建已保存的搜索 登录 注册 外观设置 重置焦点 您已使用其他选项卡或窗口登录。重新加载以刷新您的会话。您在另一个选项卡或窗口中注销。重新加载以刷新您的会话。您在另一个选项卡或窗口上切换了帐户。重新加载以刷新您的会话。 解除警报 {{ message }} Dropseed / plain 公共 - 通知 您必须登录才能更改通知设置 - Fork 14 - Star 718 - 代码 - 问题 3 - 拉取请求 1 - 讨论 - 操作 - 安全和质量 0 - 见解 其他导航选项 - 代码 - 问题 - 拉取请求 - 讨论 - 操作 - 安全和质量 - 见解 dropseed/plain master 分支 标签 转至文件 代码 打开更多操作菜单文件夹和文件 名称 名称 姓氏提交消息 最后提交日期 最近提交 历史记录 36,030 提交 36,030 提交 .claude .claude     .github/workflows .github/workflows     示例     plain-admin plain-admin     plain-api plain-api     plain-auth plain-auth     plain-cache plain-cache     plain-cloud plain-cloud    纯代码 纯代码 纯开发 纯开发 纯元素 纯元素 纯电子邮件 纯电子邮件 纯 esbuild 纯 esbuild 纯标志 纯标志 纯 htmx 纯 htmx 纯工作 纯工作 纯登录链接 纯登录链接 纯 oauth plain-oauth     plain-observer plain-observer     plain-pages plain-pages     plain-pageviews plain-pageviews     plain-passwords plain-passwords     plain-portal plain-portal     plain-postgres plain-postgres     plain-pytest plain-pytest     plain-redirection plain-redirection     plain-scan plain-scan     plain-sessions plain-sessions     plain-start plain-start     plain-support plain-support     plain-tailwind plain-tailwind     plain-toolbar plain-toolbar     plain-tunnel plain-tunnel     plain-vendor plain-vendor     plain plain     plainx-dev plainx-dev     脚本脚本     工具工具    .gitignore .gitignore     CLAUDE.md CLAUDE.md     CONTRIBUTING.md CONTRIBUTING.md     README.md README.md     SECURITY.md SECURITY.md     pyproject.toml pyproject.toml     uv.lock uv.lock     查看全部文件 存储库文件导航 - 自述文件 - 贡献 - 安全 Plain 用于构建应用程序的 Python Web 框架。 为人类和特工重新构想的熟悉的基础。 开始 mkdir my-app && cd my-app && claude "$(curl -sSf plainframework.com/start.md)" 也适用于 Codex、Amp、OpenCode 或您选择的代理。 为什么是平原? 明确、类型化且可预测。对人类有益的就是好的d 对于代理商。 纯代码如下所示: # app/users/models.py from plain import postgres from plain.postgres import types from plain.passwords.models import PasswordField @postgres.register_model class User(postgres.Model): email: str = types.EmailField() password: str = PasswordField() display_name: str = types.CharField(max_length=100) is_admin: bool = types.BooleanField(default=False)created_at: datetime = types.DateTimeField(auto_now_add=True) query: postgres.QuerySet[User] = postgres.QuerySet() model_options = postgres.Options(constraints=[ postgres.UniqueConstraint(fields=["email"], name="unique_email"), ], ) 视图是基于类的:# app/users/views.py from plain.views import DetailView from .models import User class UserDetail(DetailView): template_name = "users/detail.html" def get_object(self): return User.query.get(pk=self.url_kwargs["pk"]) URL 使用 Router 类: # app/users/urls.py from plain.urls import Router, path from . importviewsclassUsersRouter(Router):namespace=“users”urls=[path(“int:pk/”,views.UserDetail),]代理工具普通项目包括代理自动使用的内置工具。 规则 - 存储在项目规则文件中的始终开启的护栏(例如,克劳德代码的 .claude/rules/)。短文件(约 50 行)可防止最常见的错误。 文档 — 完整的框架文档,可根据需要从命令行访问: plain docs models # 完整文档 plain docs models --section querying # 一节 plain docs models --api # 仅键入签名 plain docs --search "queryset" # 搜索所有包 技能 — 由斜线命令触发的端到端工作流程: - /plain-install — 添加一个新包并执行粗略设置 - /plain-upgrade — 修改版本、读取变更日志、应用重大更改、运行检查 - /plain-optimize — 捕获性能跟踪、识别缓慢查询和 N+1 问题、应用修复 - /plain-bug — 收集上下文并以 GitHub 问题 CLI 的形式提交错误报告 所有命令都使用 uv run 运行(例如 uv run plain dev)。 - plain dev — 使用自动重新加载和 HTTPS 启动开发服务器 - plain fix — 在一个命令中格式化和 lint Python、CSS 和 JS - plain check — linting、预检、迁移和测试验证 - plain test — 运行测试 (pytest) - plain docs --api — 公共 API 界面,针对 LLM 格式化 Stack Plain 是固执己见的。这些是它构建的技术: - Python:3.13+ - 数据库:Postgres - 模板:Jinja2 - 前端:htmx、Tailwind CSS - Python 工具:uv(包)、ruff(lint/格式)、ty(类型检查)——全部来自 Astral - JavaScript 工具:oxc(lint/格式)、esbuild(捆绑) - 测试:pytest 包 30 个第一方包,一个框架。全部带有内置文档。 基础: - plain — 核心框架 - plain.postgres — 数据库 ORM - plain.auth — 身份验证 - plain.sessions — 会话存储 后端: - plain.api — REST API - plain.jobs — 后台作业 - plain.email — 发送电子邮件 - plain.cache — 缓存层 - plain.redirection — URL 重定向 - plain.vendor — 供应商依赖项 前端: - plain.htmx — 动态 UI - plain.tailwind — CSS 框架 - plain.elements — HTML 组件 - plain.pages — 静态页面 - plain.esbuild — JS 捆绑 开发: - plain.dev — 本地服务器 - plain.pytest — 测试助手 - plain.toolbar — 调试工具栏 - plain.code — 代码格式化 - plain.portal — 远程 shell 和文件传输 - plain.tunnel — 开发隧道 - plain.start — 项目启动器 生产: - plain.admin — 数据库管理 - plain.observer — 请求跟踪 - plain.flags — 功能标志 - plain.scan — 安全扫描 -plain.pageviews — 分析 - plain.support — 支持票证 用户: - plain.passwords — 密码身份验证 - plain.oauth — 社交登录 - plain.loginlink — 魔术链接 关于 Plain 是 Django 的一个分支,由 PullApprove 的持续开发驱动 — 可以自由地为代理时代重新构想它。 - 文档:plainframework.com/docs/ - 来源:github.com/dropseed/pl… - 入门:plainframework.com/start/ - 许可证:BSD-3 关于用于构建应用程序的 Python Web 框架。 plainframework.com 主题 python 框架 web 资源 自述文件 贡献 贡献 安全策略 安全策略 呃哦! 加载时出错。请重新加载此页面。 活动 自定义属性 星星 718 星星 观察者 3 观看 叉子 14 叉子 报告存储库 发布 1,749 个标签 呃哦! 加载时出错。请重新加载此页面。 贡献者- - - 呃哦! 加载时出错。请重新加载此页面。 语言 - Python 91.9% - HTML 5.2% - JavaScript 1.8% - 其他 1.1% 页脚 © 2026 GitHub, Inc. 页脚导航 - 条款 - 隐私 - 安全 - 状态 - 社区 - 文档 - 联系方式 - 管理 cookies - 不要分享我的个人信息 您目前无法执行该操作。


翻译声明:本文由AI自动翻译,如有不准确之处欢迎指正


🙏 如果本文对你有帮助,欢迎打赏支持,你的鼓励是我持续输出优质内容的最大动力! 💴 打赏通道:点击文章末尾「赞赏」按钮即可,每一分支持都是我前进的动力~