Home avatar

分享Python/Java/Go/Rust编程技术,AI创作爱好者

使用Django6.1开发博客(14) - 部署与收尾

功能已经比较完整,最后把项目放进真实运行环境。部署要收口开发阶段的假设。DEBUG 要关掉,密钥要交给环境,静态文件要有出口,进程要有健康检查。

https://static.xiongneng.me/deploy-runtime-20260926140000.png

公共请求先到 Nginx,TLS 和静态文件在这里结束;动态请求进入 Gunicorn,再交给 Django。应用数据、附件对象和缓存分开存放,任何一块出问题都不会把所有状态混在一起。

使用Django6.1开发博客(13) - I18n国际化

博客界面已有中文文案,但语言仍写死在模板里。我把界面文案交给 Django 翻译机制,加入 LocaleMiddleware、语言目录和切换表单。读者选择 English 后,导航、列表分页和空状态会一起变化。

https://static.xiongneng.me/i18n-locale-flow-20260926000000.png

请求先经过 LocaleMiddleware,它会读取 django_language Cookie 或 Accept-Language,解析出当前语言。模板再从翻译目录里取对应文案。

使用Django6.1开发博客(12) - Redis缓存

侧边栏在每一页都会查分类、最新文章、热门文章、最新评论和归档。这些数据不要求毫秒级新鲜,很适合缓存。我把侧边栏结果缓存一分钟;本地开发使用 LocMemCache,配置 REDIS_URL 后自动切到 Redis。

https://static.xiongneng.me/cache-sequence-20260926000000.png

视图先查缓存;命中就直接渲染;未命中执行数据库查询,写回缓存。

使用Django6.1开发博客(10) - 用户认证

评论和互动可以开放给访客;作者管理、附件上传、后台统计都需要身份。我先补上注册、登录、登出,让导航根据登录状态变化。

https://static.xiongneng.me/auth-sequence-20260926000000.png

注册成功后马上建立会话;登录成功进入首页;登出只接受 POST,并回到首页。

注册表单扩展 Django 自带表单

不要手写密码哈希。Django 的 UserCreationForm 已经处理两次密码校验和密码安全规则。

使用Django6.1开发博客(9) - 全文搜索

文章多起来以后,导航只能帮人缩小范围,搜索才能直接找答案。我给首页加一个搜索框,检索标题、摘要和正文,并让搜索词跟着分页链接继续传递。

https://static.xiongneng.me/search-dataflow-20260926000000.png

搜索词进入视图后先清理空格,再构造 OR 条件。只要标题、摘要或正文命中,文章就进入结果集。