【毕业设计之python系列】基于django的奶茶店管理系统(上)

本文涉及的产品
云原生数据库 PolarDB MySQL 版,通用型 2核4GB 50GB
云原生数据库 PolarDB PostgreSQL 版,标准版 2核4GB 50GB
简介: 【毕业设计之python系列】基于django的奶茶店管理系统

基于django的奶茶店管理系统

 

 

     

近年来,奶茶的受欢迎程度在全球范围内迅速增长。随着奶茶店数量的增加,管理这些商店变得越来越复杂。店主需要同时处理库存、订单、员工和客户等各种任务,有效地管理这些任务对于提供优质的客户服务、提高生产效率和增加盈利能力至关重要。

       因此,本论文旨在介绍一个基于Django的奶茶店管理系统,该系统可以帮助店主们以更高效的方式管理他们的奶茶店日常运营。该系统旨在通过集成产品管理、客户管理和订单管理模块来简化奶茶店的管理流程。由于Django是一个高级Python Web框架,它可以提供许多优秀的功能,如强大的ORM系统、内置身份验证和授权以及用户友好的管理页面。此外,该系统使用开源关系数据库管理系统PostgreSQL存储数据,可以提供可靠的性能和扩展性。

       总之,该系统为奶茶店店主们提供了一种简单、高效且可定制的方式来管理他们的业务,并有望成为未来奶茶店管理的主要工具之一。


关键词

奶茶店,Django,管理系统,订单,库存,营销;

Abstract

       In recent years, the popularity of milk tea has rapidly increased worldwide. With the growing number of milk tea shops, managing these businesses has become increasingly complex. Shop owners need to juggle various tasks such as inventory management, orders, staff, and customers, and effective management of these tasks is critical for providing quality customer service, improving productivity, and increasing profitability.

       Therefore, this paper aims to introduce a milk tea shop management system based on Django, which can help shop owners manage their daily operations more efficiently. The system aims to simplify the management process of milk tea shops by integrating product management, customer management, and order management modules. As Django is a high-level Python web framework, it can provide many excellent features such as a powerful ORM system, built-in authentication and authorization, and user-friendly management pages. Additionally, the system utilizes the open-source relational database management system PostgreSQL to store data, which can offer reliable performance and scalability.

       In summary, this system provides milk tea shop owners with a simple, efficient, and customizable way to manage their business and is expected to become one of the main tools for future milk tea shop management.

Keyword

Milk tea shop, Django, management system, orders, inventory, marketing;



1.选题及其意义


1.1 项目的名称


       我选择的是用Python为语言,用django框架来做的项目,我的项目名称是基于Django的奶茶店管理系统。

1.2 项目设计的意义

       在现代社会中,奶茶作为一种新兴的饮品,深受消费者喜欢,越来越多的人选择开设奶茶店来创业。然而,奶茶店的经营管理也面临着一系列的问题,如订单管理、库存管理、员工管理等等。这些问题如果不能得到有效解决,将会影响到奶茶店的经营效率和顾客满意度,从而使店铺未能取得良好的经济效益。

       基于Django框架开发的奶茶店管理系统,旨在解决奶茶店经营管理中所存在的各类问题,通过该系统,奶茶店主可以更加方便地管理自己的店铺,提高经营效率,减少管理成本,提升顾客满意度。同时,该系统还可以帮助奶茶店主进行数据统计和分析,从而更好地把握店铺运营情况,做出更准确的决策。

       因此,基于Django框架开发的奶茶店管理系统具有十分重要的意义,它可以有效提升奶茶店的经营管理水平,为奶茶店的经营发展提供坚实的支持。


2.文献资料综述


       1.《Django企业级应用开发实战》:本书详细介绍了如何使用 Django 构建企业级 Web 应用程序。其中包括模型设计、视图、模板和表单的使用方法等。

       2.《Django By Example》:这本书提供了丰富的代码示例和教程,涵盖了许多 Django 的核心功能和扩展。其中包括如何创建数据模型、处理表单、使用 Django ORM 和构建 RESTful API 等。

       3.《Django for Professionals》:这本书适合有一定 Django 基础的开发者,提供了许多现代化的工具和技术,例如 Docker、Celery、Redis 和 Elasticsearch 等。此外,本书还详细介绍了如何构建复杂的 Web 应用程序,并集成第三方服务。

       4.《Django 2 by Example》:这本书涵盖了许多 Django 的新功能和改进,例如可重用应用程序、RESTful 接口和异步任务等。此外,本书还提供了大量的示例和教程,帮助读者更好地理解 Django 的各种概念和技术。

       5.《Django Rest Framework: the Official Django Rest Framework Tutorial》:这是 Django 官方提供的 RESTful API 教程,其中涵盖了许多 Django Rest Framework 的核心概念和特性。此外,本教程还提供了许多示例和实战项目,帮助读者更好地掌握 Django Rest Framework。


3.设计理念


3.1开发工具介绍


       编辑器:编写代码的主要工具。Python支持多种编辑器,例如Visual Studio Code、PyCharm、Sublime Text等。其中,Visual Studio Code是一个轻量级的跨平台编辑器,拥有众多插件和功能,可以提升开发效率。

       开发环境:由于Python是解释型语言,因此需要安装相应的解释器才能运行代码。同时,在开发过程中还需要一些辅助工具,如包管理工具pip和虚拟环境管理工具virtualenv。在Windows环境下,可以使用Anaconda或Miniconda来搭建Python开发环境;在Linux或MacOS环境下,可以直接使用系统自带的Python环境或者通过包管理器安装。

       Web框架:Web框架可以帮助我们快速构建Web应用程序。在Python中,Django是最流行的Web框架之一,它提供了完整的后端开发解决方案,包括路由、模板引擎、ORM等,并且易于扩展和定制。

       数据库:奶茶店管理系统需要存储大量的数据,因此需要选择一款稳定可靠的数据库。在Django中,内置了SQLite数据库,可以快速进行开发和测试。但是,在生产环境中,建议使用更加稳定和高效的关系型数据库,如MySQL或PostgreSQL。

       版本控制:版本控制是开发过程中不可或缺的工具,它可以帮助我们管理代码,协作开发,以及恢复历史版本等。Git是目前最流行的版本控制工具,可以方便地与Github等在线平台集成,实现代码托管和团队协作。


3.2系统概述


       本系统采用了MVC(Model-View-Controller)架构模式,即将系统分为数据模型、视图和控制器三个部分,以实现系统的高效运行和功能模块的独立开发。

       在该架构下,数据模型主要负责与数据库进行交互,控制器负责处理用户请求和页面跳转等操作,视图负责页面展示和与用户的交互,将数据模型和视图通过控制器进行联系和协调,最终实现系统的操作和管理。


3.3 项目的基本搭建


       我用的是PYcharm这个软件来开发,下载后安装后,调好Python编译器就可以开始创项目了。首先把项目所需要的模块基本搭建,例如Django,pymysq这些模块下载好就可以开始创项目了,django-admin startproject TeaShopManagement

然后在Django项目上创建应用(app):

进入Django项目(网站)的根路径, python manage.py startapp teamanagement

这样子一个项目就基本搭建起来了。


3.4 项目的配置


在TeaShopManagement目录下settings.py中把teamanagement加到INSTALLED_APPS上,如图所示:

图1

 

后面将数库连接配置好

图2

 

3.5 models的设计


1. rom django.db import models
2. 
3. # Create your models here.
4. 
5. # 采购单信息
6. 
7. class Purchase_info(models.Model):
8. 
9.     id = models.AutoField(primary_key=True)  # 自增ID
10. 
11.     staff_name = models.CharField(max_length=50)  # 采购员姓名
12. 
13.     merchant_name = models.CharField(max_length=100)  # 商家名称
14. 
15.     merchant_phone = models.CharField(max_length=50)  # 商家电话
16. 
17.     today = models.CharField(max_length=50)  # 采购日期
18. 
19.     estimated_time = models.CharField(max_length=50)  # 预期到货日期
20. 
21.     purchase_status = models.CharField(max_length=10, choices=(('finished', 'finished'), ('unfinished', 'unfinished'), ('error', 'error')))  # 该订单是否已到货,默认未到货
22. 
23.     total_price = models.FloatField()  # 本次订单的总额
24. 
25. 
26. 
27. # 仓库物品
28. 
29. class Goods(models.Model):
30. 
31.     id = models.AutoField(primary_key=True)  # 自增ID
32. 
33.     #commodity_id = models.CharField(max_length=50)  # 编号id
34. 
35.     commodity_name = models.CharField(max_length=100)  # 采购品名称
36. 
37.     commodity_specification = models.CharField(max_length=100)  # 采购品规格
38. 
39.     commodity_num = models.IntegerField()  # 采购品总数
40. 
41.     commodity_price = models.FloatField()  # 采购品平均单价,这个是要算平均的
42. 
43.     status_level = models.IntegerField()  # 危险警戒线
44. 
45. 
46. 
47. # 采购物品详情
48. 
49. class Commodity_info(models.Model):
50. 
51.     id = models.AutoField(primary_key=True)  # 自增ID
52. 
53.     #commodity_id = models.CharField(max_length=50)  # 编号id
54. 
55.     commodity_name = models.CharField(max_length=100)  # 采购品名称
56. 
57.     commodity_specification = models.CharField(max_length=100)  # 采购品规格
58. 
59.     commodity_num = models.IntegerField()  # 采购品数量
60. 
61.     commodity_price = models.FloatField()  # 采购品单价
62. 
63.     purchase = models.ForeignKey(Purchase_info, on_delete=models.CASCADE)  # 对应的采购单的外键
64. 
65.     goods = models.ForeignKey(Goods, on_delete=models.CASCADE)  # 对应的物品的外键
66. 
67. 
68. 
69. # 奶茶原有的信息
70. 
71. class Tea_info(models.Model):
72. 
73.     id = models.AutoField(primary_key=True)  # 自增ID
74. 
75.     tea_name = models.CharField(max_length=50)  # 奶茶名称
76. 
77.     tea_cost = models.FloatField()  # 奶茶成本
78. 
79.     tea_price = models.FloatField()  # 奶茶原本售价
80. 
81.     tea_composition = models.CharField(max_length=50)  # 奶茶组成成分
82. 
83. 
84. 
85. # 奶茶销售订单信息
86. 
87. class Sale_info(models.Model):
88. 
89.     id = models.AutoField(primary_key=True)  # 自增ID
90. 
91.     staff_name = models.CharField(max_length=50)  # 采购员姓名
92. 
93.     today = models.CharField(max_length=50)  # 销售日期
94. 
95.     ismember = models.CharField(max_length=10, choices=(('yes', 'yes'), ('no', 'no')))  # 是否是会员
96. 
97.     discount = models.IntegerField(default=100)  # 额外折扣
98. 
99.     original_price = models.FloatField()  # 原价
100. 
101.     discount_price = models.FloatField()  # 折后总价,最后价格
102. 
103. # 奶茶销售信息
104. 
105. class Sale_tea(models.Model):
106. 
107.     id = models.AutoField(primary_key=True)  # 自增ID
108. 
109.     tea = models.ForeignKey(Tea_info, on_delete=models.CASCADE)  # 对应的奶茶的外键
110. 
111.     tea_name = models.CharField(max_length=50)  # 奶茶名字
112. 
113.     tea_num = models.IntegerField()  # 数量
114. 
115.     tea_sugar = models.CharField(max_length=10, choices=(('free', 'free'), ('normal', 'normal'), ('full', 'full')))  # 奶茶的甜度
116. 
117.     tea_temperature = models.CharField(max_length=10, choices=(('cold', 'cold'), ('normal', 'normal'), ('hot', 'hot')))  # 奶茶的温度
118. 
119.     tea_additional = models.CharField(max_length=50)  # 奶茶额外加料
120. 
121.     total_price = models.FloatField()  # 奶茶实际售价
122. 
123.     sale = models.ForeignKey(Sale_info, on_delete=models.CASCADE)  # 对应的销售单的外键
124. 
125. # 额外加料表
126. 
127. class Tea_addition(models.Model):
128. 
129.     id = models.AutoField(primary_key=True)  # 自增ID
130. 
131.     name = models.CharField(max_length=50)  # 加料名称
132. 
133.     cost = models.FloatField()  # 加料成本
134. 
135.     price = models.FloatField()  # 加料售价
136. 
137.     goods = models.ForeignKey(Goods, on_delete=models.CASCADE)  # 对应的物品的外键
138. 
139. # 财务查看,也就是将采购表和销售表拉过来
140. 
141. class Finance(models.Model):
142. 
143.     id = models.AutoField(primary_key=True)  # 自增ID
144. 
145.     time = models.CharField(max_length=50)
146. 
147.     staff_name = models.CharField(max_length=50)
148. 
149.     mode = models.CharField(max_length=10, choices=(('purchase', 'purchase'), ('sales', 'sales')))
150. 
151.     option_id = models.IntegerField()  # 对应的采购单,销售单编号
152. 
153. # 物品进出表
154. 
155. class Goods_inout(models.Model):
156. 
157.     id = models.AutoField(primary_key=True)  # 自增ID
158. 
159.     time = models.CharField(max_length=50)
160. 
161.     staff_name = models.CharField(max_length=50)
162. 
163.     num = models.IntegerField()  # 数量
164. 
165.     mode = models.CharField(max_length=10, choices=(('purchase', 'purchase'), ('sales', 'sales')))
166. 
167.     goods = models.ForeignKey(Goods, on_delete=models.CASCADE)  # 对应的物品的外键
168. 
169. # 用户表
170. 
171. class Users(models.Model):
172. 
173.     id = models.AutoField(primary_key=True)  # 自增ID
174. 
175.     username = models.CharField(max_length=50)
176. 
177.     password = models.CharField(max_length=50)
178. 
179.     name = models.CharField(max_length=50)
180. 
181.     identity = models.CharField(max_length=50)
182. 
183. avatar = models.CharField(max_length=50)  # 头像的url地址
相关实践学习
使用PolarDB和ECS搭建门户网站
本场景主要介绍基于PolarDB和ECS实现搭建门户网站。
阿里云数据库产品家族及特性
阿里云智能数据库产品团队一直致力于不断健全产品体系,提升产品性能,打磨产品功能,从而帮助客户实现更加极致的弹性能力、具备更强的扩展能力、并利用云设施进一步降低企业成本。以云原生+分布式为核心技术抓手,打造以自研的在线事务型(OLTP)数据库Polar DB和在线分析型(OLAP)数据库Analytic DB为代表的新一代企业级云原生数据库产品体系, 结合NoSQL数据库、数据库生态工具、云原生智能化数据库管控平台,为阿里巴巴经济体以及各个行业的企业客户和开发者提供从公共云到混合云再到私有云的完整解决方案,提供基于云基础设施进行数据从处理、到存储、再到计算与分析的一体化解决方案。本节课带你了解阿里云数据库产品家族及特性。
目录
相关文章
|
4天前
|
设计模式 前端开发 数据库
Python Web开发:Django框架下的全栈开发实战
【10月更文挑战第27天】本文介绍了Django框架在Python Web开发中的应用,涵盖了Django与Flask等框架的比较、项目结构、模型、视图、模板和URL配置等内容,并展示了实际代码示例,帮助读者快速掌握Django全栈开发的核心技术。
73 44
|
5天前
|
安全 数据库 开发者
Python Web开发:Django框架下的全栈开发实战
【10月更文挑战第26天】本文详细介绍了如何在Django框架下进行全栈开发,包括环境安装与配置、创建项目和应用、定义模型类、运行数据库迁移、创建视图和URL映射、编写模板以及启动开发服务器等步骤,并通过示例代码展示了具体实现过程。
22 2
|
8天前
|
安全 数据库 C++
Python Web框架比较:Django vs Flask vs Pyramid
Python Web框架比较:Django vs Flask vs Pyramid
17 1
|
19天前
|
安全 数据库 C++
Python Web框架比较:Django vs Flask vs Pyramid
Python Web框架比较:Django vs Flask vs Pyramid
19 4
|
3月前
|
机器学习/深度学习 数据采集 数据可视化
基于爬虫和机器学习的招聘数据分析与可视化系统,python django框架,前端bootstrap,机器学习有八种带有可视化大屏和后台
本文介绍了一个基于Python Django框架和Bootstrap前端技术,集成了机器学习算法和数据可视化的招聘数据分析与可视化系统,该系统通过爬虫技术获取职位信息,并使用多种机器学习模型进行薪资预测、职位匹配和趋势分析,提供了一个直观的可视化大屏和后台管理系统,以优化招聘策略并提升决策质量。
158 4
|
3月前
|
搜索推荐 前端开发 数据可视化
【优秀python web毕设案例】基于协同过滤算法的酒店推荐系统,django框架+bootstrap前端+echarts可视化,有后台有爬虫
本文介绍了一个基于Django框架、协同过滤算法、ECharts数据可视化以及Bootstrap前端技术的酒店推荐系统,该系统通过用户行为分析和推荐算法优化,提供个性化的酒店推荐和直观的数据展示,以提升用户体验。
141 1
|
2月前
|
机器学习/深度学习 人工智能 算法
植物病害识别系统Python+卷积神经网络算法+图像识别+人工智能项目+深度学习项目+计算机课设项目+Django网页界面
植物病害识别系统。本系统使用Python作为主要编程语言,通过收集水稻常见的四种叶片病害图片('细菌性叶枯病', '稻瘟病', '褐斑病', '稻瘟条纹病毒病')作为后面模型训练用到的数据集。然后使用TensorFlow搭建卷积神经网络算法模型,并进行多轮迭代训练,最后得到一个识别精度较高的算法模型,然后将其保存为h5格式的本地模型文件。再使用Django搭建Web网页平台操作界面,实现用户上传一张测试图片识别其名称。
110 22
植物病害识别系统Python+卷积神经网络算法+图像识别+人工智能项目+深度学习项目+计算机课设项目+Django网页界面
|
2月前
|
机器学习/深度学习 算法 TensorFlow
交通标志识别系统Python+卷积神经网络算法+深度学习人工智能+TensorFlow模型训练+计算机课设项目+Django网页界面
交通标志识别系统。本系统使用Python作为主要编程语言,在交通标志图像识别功能实现中,基于TensorFlow搭建卷积神经网络算法模型,通过对收集到的58种常见的交通标志图像作为数据集,进行迭代训练最后得到一个识别精度较高的模型文件,然后保存为本地的h5格式文件。再使用Django开发Web网页端操作界面,实现用户上传一张交通标志图片,识别其名称。
92 6
交通标志识别系统Python+卷积神经网络算法+深度学习人工智能+TensorFlow模型训练+计算机课设项目+Django网页界面
|
2月前
|
机器学习/深度学习 人工智能 算法
【新闻文本分类识别系统】Python+卷积神经网络算法+人工智能+深度学习+计算机毕设项目+Django网页界面平台
文本分类识别系统。本系统使用Python作为主要开发语言,首先收集了10种中文文本数据集("体育类", "财经类", "房产类", "家居类", "教育类", "科技类", "时尚类", "时政类", "游戏类", "娱乐类"),然后基于TensorFlow搭建CNN卷积神经网络算法模型。通过对数据集进行多轮迭代训练,最后得到一个识别精度较高的模型,并保存为本地的h5格式。然后使用Django开发Web网页端操作界面,实现用户上传一段文本识别其所属的类别。
85 1
【新闻文本分类识别系统】Python+卷积神经网络算法+人工智能+深度学习+计算机毕设项目+Django网页界面平台
|
1月前
|
存储 Shell 数据库
Python编程--Django入门:用户账户(二)
Python编程--Django入门:用户账户(二)