Advertisement

python趣味编程-Django 洗衣店管理系统

阅读量:

在 Python 中使用 Django 的洗衣店管理系统

该项目名为洗衣店管理系统 。这是一个使用PythonDjango Framework 开发的基于 Web 的应用程序。该项目为洗衣店企业提供了一个在线自动化平台来管理其日常交易。该应用程序允许上述业务管理人员记录他们与客户的日常服务和销售情况。该应用程序使用Bootstrap Framework 拥有令人愉悦的用户界面。它还包含用户友好的特性和功能。

关于洗衣店管理系统

我使用以下内容开发了这个项目:

  • Python
  • 姜戈
  • SQLite3
  • 超文本标记语言
  • CSS
  • JavaScript
  • jQuery
  • 阿贾克斯
  • 丰塔威索姆
  • 引导程序 v5

洗衣店管理系统项目仅供****洗衣店管理层 访问。它要求员工使用有效的用户凭据登录才能访问该应用程序的特性和功能。用户只能由管理员用户或 Django 超级用户注册。管理员用户可以使用站点用户界面或 Django 管理面板端来注册用户。

该应用程序允许管理层列出他们接受的所有类型的洗衣店以及每种类型每公斤的价格或费率。用户还可以列出和管理其店铺提供的产品,如 液体洗涤剂 等。管理人员可以在系统上动态添加、编辑和删除产品。他们还可以监控每种产品的可用库存。该项目应用程序的主要特点是交易页面 。交易页面 允许管理层存储、管理或打印每个客户交易的收据。该功能包含客户详细信息、洗衣清单、使用的产品清单以及应付总额。该应用程序还生成可打印的每日交易报告

特征

  • 登录
  • * 显示摘要
  • 洗衣类型管理 * 添加新的洗衣类型
    • 列出洗衣类型
    • 更新洗衣类型详细信息
    • 查看洗衣类型详细信息
    • 删除洗衣类型
  • 产品管理 * 添加新产品
    • 列出产品
    • 更新产品详情
    • 查看产品详情
    • 显示历史库存
    • 编辑/删除 Stockin 历史记录
    • 列出销售历史
    • 删除产品
  • 交易管理 * 添加新交易
    • 列出交易
    • 更新交易详情
    • 查看交易详情
    • 打印交易收据
    • 删除交易
  • 用户管理 * 添加新用户
    • 列出用户
    • 更新用户详细信息
    • 删除用户
  • 个人资料页
  • 更新个人资料详细信息
  • 更新密码
  • 登出

快照示例

主页
洗衣店管理系统
洗衣类型列表
洗衣店管理系统
产品详情页
洗衣店管理系统
交易表格
洗衣店管理系统
交易收据 - 打印视图
洗衣店管理系统
每日交易报告页面
洗衣店管理系统
每日交易报告 - 打印视图
洗衣店管理系统

如何运行

下载/安装以下内容

  • Python 我用的是v3.9.1
  • PIP 用于 python 模块安装

设置/安装

  1. 下载解压 提供的源代码zip文件。 (下载按钮位于下方)
  2. 打开 终端**/命令提示符** 窗口。 (确保在环境变量中添加“python”和“pip”)
  3. 将工作目录 更改 提取的源代码文件夹。 IEcd C:\Users\Personal-23\Desktop\django_lsms
  4. 运行 以下命令
    • pip install -r requirements.txt
    • python manage.py migrate
    • python manage.py runserver
  5. 保持终端打开并运行。
  6. 打开****网络浏览 器并浏览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)

还没有任何评论哟~