基于Python+Django实现药品管理系统

220 阅读9分钟

本文己参与[新人创作礼]活动,一起开启掘金创作之路

 项目编号:BS-Python-001

技术架构:Python+Django

前端:Boostrap

开发工具:IDEA

数据库:sqlite

项目实现的功能:

   用户分三个角色:管理员、仓库管理员、经销商管理员

主要实现的功能包含:药品的进销存操作、客户管理、供应商管理、经营数据统计、数据导出、系统管理等模块

具体功能展示如下:

库存管理

客户管理

供应商管理

经营统计分析

数据导出

系统管理

数据打印

\

核心代码如下: ​from datetime import datetime import time from django.http.response import FileResponse from django.shortcuts import render, redirect from hnyhms_app.models import * import pandas as pd

首页

def index(request): return render(request, 'index.html', context={'flag': True})

登录

def login(request): # 用户登录信息判断 if request.method == "POST": # 获取用户登录信息 username = request.POST.get('username') userpass = request.POST.get('userpass') # 查询用户信息 admin_user = Admin_users.objects.filter(au_account=username, au_pwd=userpass).first() if admin_user: rep = redirect('/adminpage') rep.set_cookie('adminuser', username) rep.set_cookie('au_role', admin_user.au_role) return rep rep = render(request, 'index.html', context={'flag': False}) rep.delete_cookie("adminuser") return rep

退出登录

def outlogin(request): rep = redirect('/') rep.delete_cookie("adminuser") return rep

管理页面

def admin(request): # 收到浏览器的再次请求,判断浏览器携带的cookie是不是登录成功的时候响应的cookie adminuser = request.COOKIES.get('adminuser') if adminuser is not None: # 登录用户信息 admin_user = Admin_users.objects.get(au_account=adminuser) admin_user_name = admin_user.au_name admin_user_role = admin_user.au_role if admin_user_role == 1: return render(request, 'admin_1.html', context={'admin_user_name': admin_user_name}) if admin_user_role == 2: return render(request, 'admin_2.html', context={'admin_user_name': admin_user_name}) if admin_user_role == 3: return render(request, 'admin_3.html', context={'admin_user_name': admin_user_name}) return render(request, 'funcpage/error.html', context={'info': '您没有权限访问该页面!', 'up': '/'}, status=403)

库存管理

def kcpg(request): # 收到浏览器的再次请求,判断浏览器携带的cookie是不是登录成功的时候响应的cookie adminuser = request.COOKIES.get('adminuser') # 权限判断 admin_user_role = Admin_users.objects.get(au_account = adminuser).au_role if adminuser is not None and (admin_user_role == 1 or admin_user_role == 2): # 判断是否有查询信息 if request.GET.get('s') is None or request.GET.get('s') == '': # 返回全部列表 medicines_list = Medicines.objects.all().values() customers_suppliers = Customers_suppliers.objects.filter(cs_attitude='供应商').values() warehouse_record = Warehouse_record.objects.all() context = {'medicines': medicines_list, 'customers_suppliers': customers_suppliers, 'warehouse_record': warehouse_record} return render(request, 'funcpage/kcpg.html', context=context) # 返回符合查询内容的列表 medicines_list = Medicines.objects.filter(medicine_name__contains=request.GET.get('s')).values() customers_suppliers = Customers_suppliers.objects.filter(cs_attitude='供应商').values() warehouse_record = Warehouse_record.objects.all().values() context = {'medicines': medicines_list, 'customers_suppliers': customers_suppliers, 'warehouse_record': warehouse_record} return render(request, 'funcpage/kcpg.html', context=context) return render(request, 'funcpage/error.html', context={'info': '您没有权限访问该页面!', 'up': '/'}, status=403)

药品入库页面

def in_medicine(request): # 收到浏览器的再次请求,判断浏览器携带的cookie是不是登录成功的时候响应的cookie adminuser = request.COOKIES.get('adminuser') # 权限判断 admin_user_role = Admin_users.objects.get(au_account = adminuser).au_role if adminuser is not None and (admin_user_role == 1 or admin_user_role == 2): medicine_id = request.GET.get('id') medicine_data = list(Medicines.objects.filter(id=medicine_id).values())[0] customers_suppliers = Customers_suppliers.objects.filter(cs_attitude='供应商').values() return render(request, 'funcpage/in_medicine.html', context={'medicine_data': medicine_data, 'customers_suppliers': customers_suppliers}) return render(request, 'funcpage/error.html', context={'info': '您没有权限访问该页面!', 'up': '/'}, status=403)

药品出库

def out_medicine(request): # 收到浏览器的再次请求,判断浏览器携带的cookie是不是登录成功的时候响应的cookie adminuser = request.COOKIES.get('adminuser') # 权限判断 admin_user_role = Admin_users.objects.get(au_account = adminuser).au_role if adminuser is not None and (admin_user_role == 1 or admin_user_role == 2): medicine_id = request.GET.get('id') medicine_data = list(Medicines.objects.filter(id=medicine_id).values())[0] customers_suppliers = Customers_suppliers.objects.filter(cs_attitude='客户').values() return render(request, 'funcpage/out_medicine.html', context={'medicine_data': medicine_data, 'customers_suppliers': customers_suppliers}) return render(request, 'funcpage/error.html', context={'info': '您没有权限访问该页面!', 'up': '/'}, status=403)

药品入库保存

def in_medicine_save(request): # 收到浏览器的再次请求,判断浏览器携带的cookie是不是登录成功的时候响应的cookie adminuser = request.COOKIES.get('adminuser') # 权限判断 admin_user_role = Admin_users.objects.get(au_account = adminuser).au_role if adminuser is not None and (admin_user_role == 1 or admin_user_role == 2): medicine = Medicines.objects.filter(id=request.POST.get('id')) medicine.update(medicine_quantity = medicine[0].medicine_quantity + float(request.POST.get('medicine_quantity'))) # 进货金额计算 in_amount = float(request.POST.get('medicine_quantity')) * float(request.POST.get('medicine_purchase'))

    # 添加入库记录
    warehouse_record = Warehouse_record(wr_in_out = '入库', 
                        wr_quantity = request.POST.get('medicine_quantity'),
                        wr_cs_name = request.POST.get('medicine_suppliers'),
                        wr_admin_name = request.COOKIES.get('adminuser'),
                        wr_medicine_name = request.POST.get('medicine_name'),
                        wr_in_out_time = time.strftime("%Y-%m-%d", time.localtime()),
                        wr_amount = in_amount)
    warehouse_record.save()
    return redirect('/kcpg')
return render(request, 'funcpage/error.html', context={'info': '您没有权限访问该页面!', 'up': '/'}, status=403)

药品出库保存

def out_medicine_save(request): # 收到浏览器的再次请求,判断浏览器携带的cookie是不是登录成功的时候响应的cookie adminuser = request.COOKIES.get('adminuser') # 权限判断 admin_user_role = Admin_users.objects.get(au_account = adminuser).au_role if adminuser is not None and (admin_user_role == 1 or admin_user_role == 2): medicine = Medicines.objects.filter(id=request.POST.get('id')) if medicine[0].medicine_quantity >= float(request.POST.get('medicine_quantity')): medicine.update(medicine_quantity = medicine[0].medicine_quantity - float(request.POST.get('medicine_quantity'))) # 出货金额计算 out_amount = float(request.POST.get('medicine_quantity')) * float(request.POST.get('medicine_selling'))

        # 添加出库记录
        warehouse_record = Warehouse_record(wr_in_out = '出库', 
                            wr_quantity = request.POST.get('medicine_quantity'),
                            wr_cs_name = request.POST.get('medicine_suppliers'),
                            wr_admin_name = request.COOKIES.get('adminuser'),
                            wr_medicine_name = request.POST.get('medicine_name'),
                            wr_in_out_time = time.strftime("%Y-%m-%d", time.localtime()),
                            wr_amount = out_amount)
        warehouse_record.save()
        return redirect('/kcpg')
    else:
        return render(request, 'funcpage/error.html', context={'info': '库存数量已不够出库,请返回或重新填写出库数量', 'up': '/kcpg'}, status=403)
return render(request, 'funcpage/error.html', context={'info': '您没有权限访问该页面!', 'up': '/'}, status=403)

新增药品保存

def add_medicine(request): # 收到浏览器的再次请求,判断浏览器携带的cookie是不是登录成功的时候响应的cookie adminuser = request.COOKIES.get('adminuser') # 权限判断 admin_user_role = Admin_users.objects.get(au_account = adminuser).au_role if adminuser is not None and (admin_user_role == 1 or admin_user_role == 2): # 药品保存 medicine = Medicines(medicine_name = request.POST.get('medicine_name'), medicine_manufacturers = request.POST.get('medicine_manufacturers'), medicine_trademark = request.POST.get('medicine_trademark'), medicine_production_address = request.POST.get('medicine_production_address'), medicine_code = request.POST.get('medicine_code'), medicine_specification = request.POST.get('medicine_specification'), medicine_purchase = request.POST.get('medicine_purchase'), medicine_selling = request.POST.get('medicine_selling')) medicine.save() return redirect("/kcpg") return render(request, 'funcpage/error.html', context={'info': '您没有权限访问该页面!', 'up': '/'}, status=403)

药品编辑页面

def edit_medicine_page(request): # 收到浏览器的再次请求,判断浏览器携带的cookie是不是登录成功的时候响应的cookie adminuser = request.COOKIES.get('adminuser') # 权限判断 admin_user_role = Admin_users.objects.get(au_account = adminuser).au_role if adminuser is not None and (admin_user_role == 1 or admin_user_role == 2): medicine_id = request.GET.get('id') medicine_data = list(Medicines.objects.filter(id=medicine_id).values())[0] return render(request, 'funcpage/edit_medicine.html', context={'medicine_data': medicine_data}) return render(request, 'funcpage/error.html', context={'info': '您没有权限访问该页面!', 'up': '/'}, status=403)

药品编辑保存

def edit_medicine_save(request): # 收到浏览器的再次请求,判断浏览器携带的cookie是不是登录成功的时候响应的cookie adminuser = request.COOKIES.get('adminuser') # 权限判断 admin_user_role = Admin_users.objects.get(au_account = adminuser).au_role if adminuser is not None and (admin_user_role == 1 or admin_user_role == 2): medicine = Medicines.objects.filter(id=request.POST.get('id')) medicine.update(medicine_name=request.POST.get('medicine_name'), medicine_manufacturers = request.POST.get('medicine_manufacturers'), medicine_trademark = request.POST.get('medicine_trademark'), medicine_production_address = request.POST.get('medicine_production_address'), medicine_code = request.POST.get('medicine_code'), medicine_specification = request.POST.get('medicine_specification'), medicine_purchase = request.POST.get('medicine_purchase'), medicine_selling = request.POST.get('medicine_selling')) return redirect('/kcpg') return render(request, 'funcpage/error.html', context={'info': '您没有权限访问该页面!', 'up': '/'}, status=403)

删除库存

def del_medicine(request): # 收到浏览器的再次请求,判断浏览器携带的cookie是不是登录成功的时候响应的cookie adminuser = request.COOKIES.get('adminuser') # 权限判断 admin_user_role = Admin_users.objects.get(au_account = adminuser).au_role if adminuser is not None and (admin_user_role == 1 or admin_user_role == 2): medicine = Medicines.objects.get(id = request.GET.get('id')) medicine.delete() return redirect("/kcpg") return render(request, 'funcpage/error.html', context={'info': '您没有权限访问该页面!', 'up': '/'}, status=403)

客户管理

def khpg(request): # 收到浏览器的再次请求,判断浏览器携带的cookie是不是登录成功的时候响应的cookie adminuser = request.COOKIES.get('adminuser') # 权限判断 admin_user_role = Admin_users.objects.get(au_account = adminuser).au_role if adminuser is not None and (admin_user_role == 1 or admin_user_role == 3): # 判断是否有查询信息 if request.GET.get('s') is None or request.GET.get('s') == '': customers_suppliers = Customers_suppliers.objects.filter( cs_attitude='客户').values() context = {'customers_suppliers': customers_suppliers} return render(request, 'funcpage/khpg.html', context=context) # 返回符合查询内容的列表 customers_suppliers = Customers_suppliers.objects.filter(cs_unit__contains = request.GET.get('s')).values() context = {'customers_suppliers': customers_suppliers} return render(request, 'funcpage/khpg.html', context=context) return render(request, 'funcpage/error.html', context={'info': '您没有权限访问该页面!', 'up': '/'}, status=403)

新增客户

def add_customers(request): # 收到浏览器的再次请求,判断浏览器携带的cookie是不是登录成功的时候响应的cookie adminuser = request.COOKIES.get('adminuser') # 权限判断 admin_user_role = Admin_users.objects.get(au_account = adminuser).au_role if adminuser is not None and (admin_user_role == 1 or admin_user_role == 3): customers = Customers_suppliers(cs_attitude = request.POST.get('cs_attitude'), cs_postCode = request.POST.get('cs_postCode'), cs_address = request.POST.get('cs_address'), cs_tel = request.POST.get('cs_tel'), cs_unit = request.POST.get('cs_unit'), cs_name = request.POST.get('cs_name')) customers.save() return redirect("/khpg") return render(request, 'funcpage/error.html', context={'info': '您没有权限访问该页面!', 'up': '/'}, status=403)

客户编辑页面

def edit_customers_page(request): # 收到浏览器的再次请求,判断浏览器携带的cookie是不是登录成功的时候响应的cookie adminuser = request.COOKIES.get('adminuser') # 权限判断 admin_user_role = Admin_users.objects.get(au_account = adminuser).au_role if adminuser is not None and (admin_user_role == 1 or admin_user_role == 3): customers_id = request.GET.get('id') customers_data = list(Customers_suppliers.objects.filter(id=customers_id).values())[0] return render(request, 'funcpage/edit_customers.html', context=customers_data) return render(request, 'funcpage/error.html', context={'info': '您没有权限访问该页面!', 'up': '/'}, status=403)

客户编辑保存

def edit_customers_save(request): # 收到浏览器的再次请求,判断浏览器携带的cookie是不是登录成功的时候响应的cookie adminuser = request.COOKIES.get('adminuser') # 权限判断 admin_user_role = Admin_users.objects.get(au_account = adminuser).au_role if adminuser is not None and (admin_user_role == 1 or admin_user_role == 3): medicine = Customers_suppliers.objects.filter(id=request.POST.get('id')) medicine.update(cs_postCode=request.POST.get('cs_postCode'), cs_address = request.POST.get('cs_address'), cs_tel = request.POST.get('cs_tel'), cs_unit = request.POST.get('cs_unit'), cs_name = request.POST.get('cs_name')) return redirect('/khpg') return render(request, 'funcpage/error.html', context={'info': '您没有权限访问该页面!', 'up': '/'}, status=403)

删除客户

def del_customers(request): # 收到浏览器的再次请求,判断浏览器携带的cookie是不是登录成功的时候响应的cookie adminuser = request.COOKIES.get('adminuser') # 权限判断 admin_user_role = Admin_users.objects.get(au_account = adminuser).au_role if adminuser is not None and (admin_user_role == 1 or admin_user_role == 3): customers_suppliers = Customers_suppliers.objects.get(id = request.GET.get('id')) customers_suppliers.delete() return redirect("/khpg") return render(request, 'funcpage/error.html', context={'info': '您没有权限访问该页面!', 'up': '/'}, status=403)

供应商管理

def gyspg(request): # 收到浏览器的再次请求,判断浏览器携带的cookie是不是登录成功的时候响应的cookie adminuser = request.COOKIES.get('adminuser') # 权限判断 admin_user_role = Admin_users.objects.get(au_account = adminuser).au_role if adminuser is not None and (admin_user_role == 1 or admin_user_role == 3): # 判断是否有查询信息 if request.GET.get('s') is None or request.GET.get('s') == '': customers_suppliers = Customers_suppliers.objects.filter( cs_attitude='供应商').values() context = {'customers_suppliers': customers_suppliers} return render(request, 'funcpage/gyspg.html', context=context) # 返回符合查询内容的列表 customers_suppliers = Customers_suppliers.objects.filter(cs_unit__contains = request.GET.get('s')).values() context = {'customers_suppliers': customers_suppliers} return render(request, 'funcpage/gyspg.html', context=context) return render(request, 'funcpage/error.html', context={'info': '您没有权限访问该页面!', 'up': '/'}, status=403)

新增供应商

def add_suppliers(request): # 收到浏览器的再次请求,判断浏览器携带的cookie是不是登录成功的时候响应的cookie adminuser = request.COOKIES.get('adminuser') # 权限判断 admin_user_role = Admin_users.objects.get(au_account = adminuser).au_role if adminuser is not None and (admin_user_role == 1 or admin_user_role == 3): suppliers = Customers_suppliers(cs_attitude = request.POST.get('cs_attitude'), cs_postCode = request.POST.get('cs_postCode'), cs_address = request.POST.get('cs_address'), cs_tel = request.POST.get('cs_tel'), cs_unit = request.POST.get('cs_unit'), cs_name = request.POST.get('cs_name')) suppliers.save() return redirect("/gyspg") return render(request, 'funcpage/error.html', context={'info': '您没有权限访问该页面!', 'up': '/'}, status=403)

供应商编辑页面

def edit_suppliers_page(request): # 收到浏览器的再次请求,判断浏览器携带的cookie是不是登录成功的时候响应的cookie adminuser = request.COOKIES.get('adminuser') # 权限判断 admin_user_role = Admin_users.objects.get(au_account = adminuser).au_role if adminuser is not None and (admin_user_role == 1 or admin_user_role == 3): suppliers_id = request.GET.get('id') suppliers_data = list(Customers_suppliers.objects.filter(id=suppliers_id).values())[0] return render(request, 'funcpage/edit_suppliers.html', context=suppliers_data) return render(request, 'funcpage/error.html', context={'info': '您没有权限访问该页面!', 'up': '/'}, status=403)

供应商编辑保存

def edit_suppliers_save(request): # 收到浏览器的再次请求,判断浏览器携带的cookie是不是登录成功的时候响应的cookie adminuser = request.COOKIES.get('adminuser') # 权限判断 admin_user_role = Admin_users.objects.get(au_account = adminuser).au_role if adminuser is not None and (admin_user_role == 1 or admin_user_role == 3): suppliers = Customers_suppliers.objects.filter(id=request.POST.get('id')) suppliers.update(cs_postCode=request.POST.get('cs_postCode'), cs_address = request.POST.get('cs_address'), cs_tel = request.POST.get('cs_tel'), cs_unit = request.POST.get('cs_unit'), cs_name = request.POST.get('cs_name')) return redirect('/gyspg') return render(request, 'funcpage/error.html', context={'info': '您没有权限访问该页面!', 'up': '/'}, status=403)

删除供应商

def del_suppliers(request): # 收到浏览器的再次请求,判断浏览器携带的cookie是不是登录成功的时候响应的cookie adminuser = request.COOKIES.get('adminuser') # 权限判断 admin_user_role = Admin_users.objects.get(au_account = adminuser).au_role if adminuser is not None and (admin_user_role == 1 or admin_user_role == 3): customers_suppliers = Customers_suppliers.objects.get(id = request.GET.get('id')) customers_suppliers.delete() return redirect("/gyspg") return render(request, 'funcpage/error.html', context={'info': '您没有权限访问该页面!', 'up': '/'}, status=403)

统计分析

def tjpg(request): # 收到浏览器的再次请求,判断浏览器携带的cookie是不是登录成功的时候响应的cookie adminuser = request.COOKIES.get('adminuser') # 权限判断 admin_user_role = Admin_users.objects.get(au_account = adminuser).au_role if adminuser is not None and (admin_user_role == 1): try: # 年销售额/成本/占比 # 年数据 year_data = {} now_year = datetime.now().year year_in_warehouse_record = pd.DataFrame(Warehouse_record.objects.filter(wr_in_out = '入库', wr_in_out_time__year = now_year).values()) year_out_warehouse_record = pd.DataFrame(Warehouse_record.objects.filter(wr_in_out = '出库', wr_in_out_time__year = now_year).values()) # 年收入 year_data['year_income'] = sum(year_out_warehouse_record['wr_amount']) # 年支出 year_data['year_expenditure'] = sum(year_in_warehouse_record['wr_amount']) # 年利润 year_data['year_profit'] = year_data['year_income'] - year_data['year_expenditure'] # 年盈亏比 year_data['year_ratio'] = round((year_data['year_profit'] / year_data['year_expenditure']) * 100, 3)

        # 月销售额/成本/占比
        # 月数据
        month_data = {}
        now_month = datetime.now().month
        month_in_warehouse_record = pd.DataFrame(Warehouse_record.objects.filter(wr_in_out = '入库', wr_in_out_time__month = now_month).values())
        month_out_warehouse_record = pd.DataFrame(Warehouse_record.objects.filter(wr_in_out = '出库', wr_in_out_time__month = now_month).values())
        # 月收入
        month_data['month_income'] = sum(month_out_warehouse_record['wr_amount'])
        # 月支出
        month_data['month_expenditure'] = sum(month_in_warehouse_record['wr_amount'])
        # 月利润
        month_data['month_profit'] = month_data['month_income'] - month_data['month_expenditure']
        # 月盈亏比
        month_data['month_ratio'] = round((month_data['month_profit'] / month_data['month_expenditure']) * 100, 3)
        
        # 药品排行
        medicine_ranking = {}
        # 年药品排行
        year_medicine = pd.DataFrame(Warehouse_record.objects.filter(wr_in_out = '出库', wr_in_out_time__year = now_year).values())
        year_medicine = year_medicine.sort_values('wr_amount')
        year_medicine_ranking = year_medicine.groupby(['wr_medicine_name'])['wr_amount'].sum()[::-1]
        medicine_ranking['year_medicine_ranking'] = year_medicine_ranking.to_dict()
        
        # 月药品排行
        month_medicine = pd.DataFrame(Warehouse_record.objects.filter(wr_in_out = '出库', wr_in_out_time__month = now_month).values())
        month_medicine = month_medicine.sort_values('wr_amount')
        month_medicine_ranking = month_medicine.groupby(['wr_medicine_name'])['wr_amount'].sum()[::-1]
        medicine_ranking['month_medicine_ranking'] = month_medicine_ranking.to_dict()
        # 盈利亏损情况
        pl = {}
        pl['year'] = True
        pl['month'] = True
        
        if year_data['year_profit'] < 0:
            pl['year'] = False
            
        if month_data['month_profit'] < 0:
            pl['month'] = False
            
        context = {'year_data': year_data, 'month_data': month_data, 'medicine_ranking': medicine_ranking, 'pl': pl}
        return render(request, 'funcpage/tjpg.html', context=context)
    except:
        return render(request, 'funcpage/error.html', context={'info': '现有出入库数据无法进行统计分析!', 'up': ''})
    
return render(request, 'funcpage/error.html', context={'info': '您没有权限访问该页面!', 'up': '/'}, status=403)

库存数据下载

def down_kc(request): # 收到浏览器的再次请求,判断浏览器携带的cookie是不是登录成功的时候响应的cookie adminuser = request.COOKIES.get('adminuser') # 权限判断 admin_user_role = Admin_users.objects.get(au_account = adminuser).au_role if adminuser is not None and (admin_user_role == 1): # 生成数据文件 data = pd.DataFrame(Medicines.objects.all().values()) data.to_excel('hnyhms_app/data_file/kc_data.xls', index=False) # 返回文件 file = open('hnyhms_app/data_file/kc_data.xls', 'rb') response = FileResponse(file) response['Content-Type'] = 'application/octet-stream' response['Content-Disposition'] = 'attachment;filename="kc_data_' + datetime.strftime(datetime.now(),'%Y-%m-%d %H:%M:%S') + '.xls"' return response

return render(request, 'funcpage/error.html', context={'info': '您没有权限下载文件!', 'up': '/'})

出入库记录下载

def down_io(request): # 收到浏览器的再次请求,判断浏览器携带的cookie是不是登录成功的时候响应的cookie adminuser = request.COOKIES.get('adminuser') # 权限判断 admin_user_role = Admin_users.objects.get(au_account = adminuser).au_role if adminuser is not None and (admin_user_role == 1): # 生成数据文件 data = pd.DataFrame(Warehouse_record.objects.all().values()) data.to_excel('hnyhms_app/data_file/io_data.xls', index=False) # 返回文件 file = open('hnyhms_app/data_file/io_data.xls', 'rb') response = FileResponse(file) response['Content-Type'] = 'application/octet-stream' response['Content-Disposition'] = 'attachment;filename="io_data_' + datetime.strftime(datetime.now(),'%Y-%m-%d %H:%M:%S') + '.xls"' return response

return render(request, 'funcpage/error.html', context={'info': '您没有权限下载文件!', 'up': '/'})

客户数据下载

def down_kh(request): # 收到浏览器的再次请求,判断浏览器携带的cookie是不是登录成功的时候响应的cookie adminuser = request.COOKIES.get('adminuser') # 权限判断 admin_user_role = Admin_users.objects.get(au_account = adminuser).au_role if adminuser is not None and (admin_user_role == 1): # 生成数据文件 data = pd.DataFrame(Customers_suppliers.objects.filter(cs_attitude='客户').values()) data.to_excel('hnyhms_app/data_file/cs_data.xls', index=False) # 返回文件 file = open('hnyhms_app/data_file/cs_data.xls', 'rb') response = FileResponse(file) response['Content-Type'] = 'application/octet-stream' response['Content-Disposition'] = 'attachment;filename="cs_data_' + datetime.strftime(datetime.now(),'%Y-%m-%d %H:%M:%S') + '.xls"' return response

return render(request, 'funcpage/error.html', context={'info': '您没有权限下载文件!', 'up': '/'})

供应商数据下载

def down_gys(request): # 收到浏览器的再次请求,判断浏览器携带的cookie是不是登录成功的时候响应的cookie adminuser = request.COOKIES.get('adminuser') # 权限判断 admin_user_role = Admin_users.objects.get(au_account = adminuser).au_role if adminuser is not None and (admin_user_role == 1): # 生成数据文件 data = pd.DataFrame(Customers_suppliers.objects.filter(cs_attitude='供应商').values()) data.to_excel('hnyhms_app/data_file/gys_data.xls', index=False) # 返回文件 file = open('hnyhms_app/data_file/gys_data.xls', 'rb') response = FileResponse(file) response['Content-Type'] = 'application/octet-stream' response['Content-Disposition'] = 'attachment;filename="gys_data_' + datetime.strftime(datetime.now(),'%Y-%m-%d %H:%M:%S') + '.xls"' return response

return render(request, 'funcpage/error.html', context={'info': '您没有权限下载文件!', 'up': '/'})

系统管理

def xtpg(request): # 收到浏览器的再次请求,判断浏览器携带的cookie是不是登录成功的时候响应的cookie adminuser = request.COOKIES.get('adminuser') # 权限判断 admin_user_role = Admin_users.objects.get(au_account = adminuser).au_role if adminuser is not None and (admin_user_role == 1): admin_users = Admin_users.objects.all().values() context = {'admin_users': admin_users} return render(request, 'funcpage/xtpg.html', context=context) return render(request, 'funcpage/error.html', context={'info': '您没有权限访问该页面!', 'up': '/'}, status=403)

新增管理员

def add_admin_users(request): # 收到浏览器的再次请求,判断浏览器携带的cookie是不是登录成功的时候响应的cookie adminuser = request.COOKIES.get('adminuser') # 权限判断 admin_user_role = Admin_users.objects.get(au_account = adminuser).au_role if adminuser is not None and (admin_user_role == 1): admin_users = Admin_users(au_name = request.POST.get('au_name'), au_account = request.POST.get('au_account'), au_pwd = request.POST.get('au_pwd'), au_role = request.POST.get('au_role'), au_tel = request.POST.get('au_tel')) admin_users.save() return redirect("/xtpg") return render(request, 'funcpage/error.html', context={'info': '您没有权限访问该页面!', 'up': '/'}, status=403)

管理员编辑页面

def edit_admin_page(request): # 收到浏览器的再次请求,判断浏览器携带的cookie是不是登录成功的时候响应的cookie adminuser = request.COOKIES.get('adminuser') # 权限判断 admin_user_role = Admin_users.objects.get(au_account = adminuser).au_role if adminuser is not None and (admin_user_role == 1): admin_id = request.GET.get('id') admin_data = list(Admin_users.objects.filter(id=admin_id).values())[0] return render(request, 'funcpage/edit_admin.html', context=admin_data) return render(request, 'funcpage/error.html', context={'info': '您没有权限访问该页面!', 'up': '/'}, status=403)

管理员编辑保存

def edit_admin_save(request): # 收到浏览器的再次请求,判断浏览器携带的cookie是不是登录成功的时候响应的cookie adminuser = request.COOKIES.get('adminuser') # 权限判断 admin_user_role = Admin_users.objects.get(au_account = adminuser).au_role if adminuser is not None and (admin_user_role == 1): admin = Admin_users.objects.filter(id=request.POST.get('id')) if request.POST.get('au_pwd') == '': admin.update(au_name=request.POST.get('au_name'), au_account = request.POST.get('au_account'), au_role = request.POST.get('au_role'), au_tel = request.POST.get('au_tel')) else: admin.update(au_name=request.POST.get('au_name'), au_account = request.POST.get('au_account'), au_pwd = request.POST.get('au_pwd'), au_role = request.POST.get('au_role'), au_tel = request.POST.get('au_tel')) return redirect('/xtpg') return render(request, 'funcpage/error.html', context={'info': '您没有权限访问该页面!', 'up': '/'}, status=403)

删除管理员

def del_adminuser(request): # 收到浏览器的再次请求,判断浏览器携带的cookie是不是登录成功的时候响应的cookie adminuser = request.COOKIES.get('adminuser') # 权限判断 admin_user_role = Admin_users.objects.get(au_account = adminuser).au_role if adminuser is not None and (admin_user_role == 1): admin_users = Admin_users.objects.get(id = request.GET.get('id')) admin_users.delete() return redirect("/xtpg") return render(request, 'funcpage/error.html', context={'info': '您没有权限访问该页面!', 'up': '/'}, status=403)