python趣味编程-Django 洗衣店管理系统
发布时间
阅读量:
阅读量

在 Python 中使用 Django 的洗衣店管理系统
该项目名为洗衣店管理系统 。这是一个使用Python 和Django Framework 开发的基于 Web 的应用程序。该项目为洗衣店企业提供了一个在线自动化平台来管理其日常交易。该应用程序允许上述业务管理人员记录他们与客户的日常服务和销售情况。该应用程序使用Bootstrap Framework 拥有令人愉悦的用户界面。它还包含用户友好的特性和功能。
关于洗衣店管理系统
我使用以下内容开发了这个项目:
- Python
- 姜戈
- SQLite3
- 超文本标记语言
- CSS
- JavaScript
- jQuery
- 阿贾克斯
- 丰塔威索姆
- 引导程序 v5
该洗衣店管理系统项目仅供****洗衣店管理层 访问。它要求员工使用有效的用户凭据登录才能访问该应用程序的特性和功能。用户只能由管理员用户或 Django 超级用户注册。管理员用户可以使用站点用户界面或 Django 管理面板端来注册用户。
该应用程序允许管理层列出他们接受的所有类型的洗衣店以及每种类型每公斤的价格或费率。用户还可以列出和管理其店铺提供的产品,如 液体洗涤剂 等。管理人员可以在系统上动态添加、编辑和删除产品。他们还可以监控每种产品的可用库存。该项目应用程序的主要特点是交易页面 。交易页面 允许管理层存储、管理或打印每个客户交易的收据。该功能包含客户详细信息、洗衣清单、使用的产品清单以及应付总额。该应用程序还生成可打印的每日交易报告 。
特征
- 登录
- 家 * 显示摘要
- 洗衣类型管理 * 添加新的洗衣类型
- 列出洗衣类型
- 更新洗衣类型详细信息
- 查看洗衣类型详细信息
- 删除洗衣类型
- 产品管理 * 添加新产品
- 列出产品
- 更新产品详情
- 查看产品详情
- 显示历史库存
- 编辑/删除 Stockin 历史记录
- 列出销售历史
- 删除产品
- 交易管理 * 添加新交易
- 列出交易
- 更新交易详情
- 查看交易详情
- 打印交易收据
- 删除交易
- 用户管理 * 添加新用户
- 列出用户
- 更新用户详细信息
- 删除用户
- 个人资料页
- 更新个人资料详细信息
- 更新密码
- 登出
快照示例
主页

洗衣类型列表

产品详情页

交易表格

交易收据 - 打印视图

每日交易报告页面

每日交易报告 - 打印视图

如何运行
下载/安装以下内容
- Python ( 我用的是v3.9.1 )
- PIP ( 用于 python 模块安装 )
设置/安装
- 下载 并解压 提供的源代码
zip文件。 (下载按钮位于下方) - 打开 终端**/命令提示符** 窗口。 (确保在环境变量中添加“python”和“pip”)
- 将工作目录 更改为 提取的源代码文件夹。 IE
cd C:\Users\Personal-23\Desktop\django_lsms - 运行 以下命令 :
pip install -r requirements.txtpython manage.py migratepython manage.py runserver
- 保持终端打开并运行。
- 打开****网络浏览 器并浏览
http://localhost:8000/或http://127.0.0.1:8000/
注意:我可能会忘记列出一些其他模块/库。如果出现任何缺失的模块,请安装。
管理站点的访问信息
超级
用户 用户名:admin
密码:admin123
部分源码
from datetime import datetime
from tabnanny import check
from django import forms
from numpy import require
from lsmsApp import models
from django.contrib.auth.forms import UserCreationForm,PasswordChangeForm, UserChangeForm
from django.contrib.auth.models import User
import datetime
class SaveUser(UserCreationForm):
username = forms.CharField(max_length=250,help_text="The Username field is required.")
email = forms.EmailField(max_length=250,help_text="The Email field is required.")
first_name = forms.CharField(max_length=250,help_text="The First Name field is required.")
last_name = forms.CharField(max_length=250,help_text="The Last Name field is required.")
password1 = forms.CharField(max_length=250)
password2 = forms.CharField(max_length=250)
class Meta:
model = User
fields = ('email', 'username','first_name', 'last_name','password1', 'password2',)
class UpdateProfile(UserChangeForm):
username = forms.CharField(max_length=250,help_text="The Username field is required.")
email = forms.EmailField(max_length=250,help_text="The Email field is required.")
first_name = forms.CharField(max_length=250,help_text="The First Name field is required.")
last_name = forms.CharField(max_length=250,help_text="The Last Name field is required.")
current_password = forms.CharField(max_length=250)
class Meta:
model = User
fields = ('email', 'username','first_name', 'last_name')
def clean_current_password(self):
if not self.instance.check_password(self.cleaned_data['current_password']):
raise forms.ValidationError(f"Password is Incorrect")
def clean_email(self):
email = self.cleaned_data['email']
try:
user = User.objects.exclude(id=self.cleaned_data['id']).get(email = email)
except Exception as e:
return email
raise forms.ValidationError(f"The {user.email} mail is already exists/taken")
def clean_username(self):
username = self.cleaned_data['username']
try:
user = User.objects.exclude(id=self.cleaned_data['id']).get(username = username)
except Exception as e:
return username
raise forms.ValidationError(f"The {user.username} mail is already exists/taken")
class UpdateUser(UserChangeForm):
username = forms.CharField(max_length=250,help_text="The Username field is required.")
email = forms.EmailField(max_length=250,help_text="The Email field is required.")
first_name = forms.CharField(max_length=250,help_text="The First Name field is required.")
last_name = forms.CharField(max_length=250,help_text="The Last Name field is required.")
class Meta:
model = User
fields = ('email', 'username','first_name', 'last_name')
def clean_email(self):
email = self.cleaned_data['email']
try:
user = User.objects.exclude(id=self.cleaned_data['id']).get(email = email)
except Exception as e:
return email
raise forms.ValidationError(f"The {user.email} mail is already exists/taken")
def clean_username(self):
username = self.cleaned_data['username']
try:
user = User.objects.exclude(id=self.cleaned_data['id']).get(username = username)
except Exception as e:
return username
raise forms.ValidationError(f"The {user.username} mail is already exists/taken")
class UpdatePasswords(PasswordChangeForm):
old_password = forms.CharField(widget=forms.PasswordInput(attrs={'class':'form-control form-control-sm rounded-0'}), label="Old Password")
new_password1 = forms.CharField(widget=forms.PasswordInput(attrs={'class':'form-control form-control-sm rounded-0'}), label="New Password")
new_password2 = forms.CharField(widget=forms.PasswordInput(attrs={'class':'form-control form-control-sm rounded-0'}), label="Confirm New Password")
class Meta:
model = User
fields = ('old_password','new_password1', 'new_password2')
class SavePrice(forms.ModelForm):
laundry_type = forms.CharField(max_length=250)
price = forms.CharField(max_length=250)
status = forms.CharField(max_length=2)
class Meta:
model = models.Prices
fields = ('laundry_type', 'price', 'status', )
def clean_laundry_type(self):
id = self.data['id'] if (self.data['id']).isnumeric() else 0
laundry_type = self.cleaned_data['laundry_type']
try:
if id > 0:
price = models.Prices.objects.exclude(id = id).get(laundry_type = laundry_type, delete_flag = 0)
else:
price = models.Prices.objects.get(laundry_type = laundry_type, delete_flag = 0)
except:
return laundry_type
raise forms.ValidationError("Laundry Type already exists.")
class SaveProducts(forms.ModelForm):
name = forms.CharField(max_length=250)
description = forms.CharField(max_length=250)
price = forms.CharField(max_length=250)
status = forms.CharField(max_length=2)
class Meta:
model = models.Products
fields = ('name', 'description', 'price', 'status', )
def clean_name(self):
id = self.data['id'] if (self.data['id']).isnumeric() else 0
name = self.cleaned_data['name']
try:
if id > 0:
product = models.Products.objects.exclude(id = id).get(name = name, delete_flag = 0)
else:
product = models.Products.objects.get(name = name, delete_flag = 0)
except:
return name
raise forms.ValidationError("Product Name already exists.")
class SaveStockIn(forms.ModelForm):
product = forms.CharField(max_length=250)
quantity = forms.CharField(max_length=250)
class Meta:
model = models.StockIn
fields = ('product', 'quantity',)
def clean_product(self):
pid = self.cleaned_data['product']
try:
product = models.Products.objects.get(id = pid, delete_flag = 0)
return product
except:
raise forms.ValidationError("Product is Invalid.")
class SaveLaundry(forms.ModelForm):
code = forms.CharField(max_length=250)
client = forms.CharField(max_length=250)
contact = forms.CharField(max_length=250,required= False)
status = forms.CharField(max_length=2)
payment = forms.CharField(max_length=2)
total_amount = forms.CharField(max_length=250)
tendered = forms.CharField(max_length=250)
class Meta:
model = models.Laundry
fields = ('code', 'client', 'contact', 'status', 'payment', 'total_amount', 'tendered',)
def clean_code(self):
code = self.cleaned_data['code']
if code == 'generate':
pref = datetime.datetime.now().strftime('%y%m%d')
code = 1
while True:
try:
check = models.Laundry.objects.get(code = f"{pref}{code:05d}")
code = code + 1
except:
return f"{pref}{code:05d}"
break
else:
return code
def clean_payment(self):
tendered = float(self.data['tendered'])
if tendered > 0:
return 1
else:
return 0
def save(self):
instance = self.instance
Products = []
Items = []
# print(f"{self.data}")
if 'price_id[]' in self.data:
for k, val in enumerate(self.data.getlist('price_id[]')):
prices = models.Prices.objects.get(id= val)
price = self.data.getlist('laundry_price[]')[k]
weight = self.data.getlist('laundry_weight[]')[k]
total = float(price) * float(weight)
try:
Items.append(models.LaundryItems(laundry = instance, laundry_type = prices, price = price,weight = weight, total_amount = total))
print("LaundryItems..")
except Exception as err:
print(err)
return False
if 'product_id[]' in self.data:
for k, val in enumerate(self.data.getlist('product_id[]')):
product = models.Products.objects.get(id= val)
price = self.data.getlist('product_price[]')[k]
qty = self.data.getlist('product_quantity[]')[k]
total = float(price) * float(qty)
try:
Products.append(models.LaundryProducts(laundry = instance, product = product, price = price, quantity = qty, total_amount = total))
print("LaundryProducts..")
except Exception as err:
print(err)
return False
try:
instance.save()
models.LaundryProducts.objects.filter(laundry = instance).delete()
models.LaundryProducts.objects.bulk_create(Products)
models.LaundryItems.objects.filter(laundry = instance).delete()
models.LaundryItems.objects.bulk_create(Items)
except Exception as err:
print(err)
return False
代码解读
http://127.0.0.1:8000/adminDjango 的管理站点。
就是这样!我希望这能帮助您找到您正在寻找的东西。也许您会发现这个洗衣店管理系统 很有用,并且可以帮助您完成未来的Python Django 项目 。
在此网站上探索更多免费源代码和教程。
全部评论 (0)
还没有任何评论哟~
