餐厅管理系统
一个全栈 Django 餐厅应用,具备实时餐桌预订、餐点订购和集成的博客平台功能。
- 类型
- 网站
- 角色
- 独立开发
- Status
- 已归档
- Tech
- Django Python SQLite PostgreSQL HTML CSS JavaScript
- Started
- 2023年1月
概述
这是一个全栈 Django 网络应用,旨在为餐厅提供一个统一平台来处理通常分散在不同工具中的三件事:餐桌预订、餐点订购以及用于分享更新和促销的博客平台。顾客访问营销网站,浏览菜单,预订餐桌,下单点餐,或阅读最新的厨房动态——所有这些都通过同一个 Django 应用完成。
这个项目的目标是练习真正的全栈 Django(不仅仅是 ORM 教程),包含生产数据库路径、管理仪表盘和一个可部署的构建版本。
功能
- 实时餐桌预订 — 顾客可以实时查看餐桌可用性并预订座位。无超额预订,无重复预订。
- 餐点订购 — 浏览菜单,组合订单,下单。简洁的顾客界面加上管理端的订单管理。
- 集成博客 — 一个 Django 驱动的博客平台,让餐厅无需额外集成独立的 CMS 就能发布更新、促销和美食故事。
- 管理仪表盘 — 扩展了 Django 管理后台,包含针对餐桌、预订、菜单项和博客文章的自定义模型。
- 用户账户 — 使用 Django 内置的身份验证系统处理顾客账户,并为餐厅员工提供管理员超级用户权限。
技术栈
- 后端 — 使用 Python 的 Django,采用经典的 MVT 架构。
- 数据库 — 本地开发使用 SQLite,生产环境使用 PostgreSQL。通过 Django 的
makemigrations/migrate命令管理迁移。 - 前端 — HTML 模板、CSS 和原生 JavaScript。没有使用 SPA —— 所有内容都是服务器端渲染。
- 部署 — 使用 Gunicorn 作为 WSGI 服务器,
collectstatic处理静态资源,部署文档中建议使用 Nginx 或 Apache 作为反向代理。
亮点
- 将 Django 管理后台作为产品界面 — 我没有从头构建一个定制化的员工仪表盘,而是充分利用并定制了 Django 管理后台,这让一个小型项目几乎免费地拥有了完整的员工用户体验。
- 一个项目中的三个应用 — 预订、订购和博客各自作为独立的 Django 应用存在,拥有自己的模型和 URL,因此任何一个都可以被独立提取和复用。
- 生产环境迁移路径 — 从 SQLite 迁移到 PostgreSQL 不仅仅是更改设置。这个练习迫使我从一开始就考虑数据类型、索引和连接池。
为何归档
这个项目是我学习全栈 Django 的一个载体——了解模型、视图、模板、管理后台和部署如何在一个连贯的应用中协同工作。它仍然可以运行,但我不再对其进行主动开发。