ARTICLE DETAIL

资讯详情

深耕编程入门与网站建设的一线实战洞察。

如何用 Puput 搭建多博客站点?单实例多博客架构实战教程

如何用 Puput 搭建多博客站点?单实例多博客架构实战教程 如何用 Puput 搭建多博客站点单实例多博客架构实战教程【免费下载链接】puputA Django blog app implemented in Wagtail项目地址: https://gitcode.com/gh_mirrors/pu/puput想用一个服务器、一套代码同时运行多个风格独立的博客Puput 能帮你实现。Puput 是一款基于 Django 与 Wagtail CMS 的开源博客应用它天然支持单实例多博客架构一个实例、一个数据库却能承载 N 个互不干扰的博客站点。本文是一份面向新手的Puput 多博客站点搭建教程从环境准备、创建博客到多站点域名配置带你一步步完成实战。 为什么用 Puput 搭建多博客站点Puput 并非普通的博客插件而是一个完整的 Wagtail 博客应用天生为多博客而生优势说明️ 多博客架构同一实例下可创建任意多个博客互不影响 独立视觉每个博客可配置独立的主题色、头图、侧边栏组件 SEO 友好 URL自动生成年份/月/日/标题的友好地址 独立 RSS每个博客拥有自己的 feed 订阅地址 评论可选内置 Disqus 评论支持按博客独立开关 高度可扩展支持自定义博客模型与文章模型它的核心模型在 models.py 中定义BlogPage博客页下挂载若干EntryPage文章页层级清晰、结构统一。 多博客站点架构原理一个实例如何运行 N 个博客Puput 沿用了 Wagtail 的页面树结构规则非常简单所有BlogPage博客页都必须是根页面的子页面所有EntryPage文章页都必须是某个BlogPage的子页面Root根页面 ├── Blog 页 → 科技博客/blog/ │ └── Entry 文章页 └── Blog 页 → 视频博客/tv/ └── Entry 文章页正因为每个博客页都挂在根页面下、互不嵌套你才能在一个实例里创建多个并行的博客。官方文档 docs/sites.rst 中给出了经典案例一个/blog/放图文博客另一个/tv/放视频博客二者共用一套后端却完全独立运营。 第一步快速安装 Puput含依赖环境最简单的方式是直接在已配置好的 Django 项目中安装pip install puput然后在settings.py中追加 Puput 及其依赖应用from puput import PUPUT_APPS INSTALLED_APPS PUPUT_APPS再补充几项基础配置中间件、上下文处理器、站点名称等完整步骤可参考 docs/setup.rst。若你已有 Wagtail 项目只需安装puput并设置PUPUT_AS_PLUGIN True即可作为插件接入无需重构现有站点。⚡ 第二步初始化数据创建你的第一个博客安装完成后执行迁移和初始化命令python manage.py migrate python manage.py puput_initial_data初始化命令见 puput_initial_data.py会自动创建示例博客数据。随后启动服务访问 博客前台http://127.0.0.1:8000/blog/️ 管理后台http://127.0.0.1:8000/blog_admin/在后台新建一篇Entry文章你会看到它自动出现在博客列表中——你的第一个 Puput 博客就这样诞生了 第三步实战创建第二个博客实现单实例多博客现在是最关键的一步在后台再新建一个 Blog 页面比如命名为 Video Blogslug 为tv。保存后你会立刻得到第二个独立博客第一个博客http://127.0.0.1:8000/blog/第二个博客http://127.0.0.1:8000/tv/两者使用同一个 Django 实例和同一个数据库但内容、分类、标签完全隔离。这就是单实例多博客架构的核心体验。更妙的是 URL 路由会自动区分博客查看 urls.py 可以看到文章地址有两种格式——博客位于根路径时/2026/08/16/文章标题/多博客并存时/blog/2026/08/16/文章标题/或/tv/2026/08/16/文章标题/每个博客还可通过 routes.py 提供的路由独立实现按日期归档、标签、分类、作者、站内搜索的页面。 第四步多站点域名映射让每个博客拥有独立域名如果想让/blog/和/tv/分别绑定不同的域名如tech.example.com和tv.example.com只需在 Wagtail 后台的Sites站点管理中创建两个站点记录把各自的根页面指向对应的博客页即可。若你想让某个博客直接作为网站首页例如www.myblog.com打开即是博客而非 /blog/ 路径同样在站点配置中将根页面选为该博客页就行——详见 docs/sites.rst 的 Single blog site 一节。这是多博客站点运营中非常实用的技巧。 进阶技巧让每个博客各自为政Puput 的BlogAbstract见 abstracts.py为每个博客提供了丰富的独立配置项在后台编辑对应博客页即可配置项作用main_color每个博客独立的主色调视觉风格互不干扰header_image独立头图快速区分不同博客display_*系列按需开关分类、标签、热门文章、归档等侧边栏组件num_entries_page每个博客的列表分页数量可单独设置disqus_shortname每个博客接入不同的 Disqus 评论账号short_feed_description独立控制 RSS 描述是否截断此外每个博客的 RSS 地址也相互独立/blog/feed/与/tv/feed/分别输出各自的内容流。需要深度定制时还可通过PUPUT_BLOG_MODEL、PUPUT_ENTRY_MODEL等配置扩展博客与文章模型详见 docs/settings.rst。❓ 常见问题速查Q1多博客模式下文章地址 404 怎么办请确认博客页的 slug 正确并检查 URL 是否包含博客路径前缀如/blog/多博客模式必须带上前缀。Q2如何让博客成为网站首页在 Wagtail 后台的 Sites 设置中把该博客页设为站点的根页面即可。Q3已有的 Wagtail 项目能接入 Puput 吗可以。设置PUPUT_AS_PLUGIN True后Puput 会以插件形式融入现有 Wagtail 项目无需改动原有页面结构。 结语从安装到多站点配置Puput 用一套简洁的页面树模型让单实例多博客变得异常轻松一个后端、一个数据库却能同时运营科技、视频、生活等 N 个风格迥异的博客站点。无论你是个人站长还是企业内容团队这套Puput 多博客站点搭建方案都值得一试——现在就动手创建属于你的第一个多博客集群吧【免费下载链接】puputA Django blog app implemented in Wagtail项目地址: https://gitcode.com/gh_mirrors/pu/puput创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表