Django第一课 基于Django超市订单管理系统开发
Posted 笔触狂放
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Django第一课 基于Django超市订单管理系统开发相关的知识,希望对你有一定的参考价值。
概念
django服务器开发框架是一款基于Python编程语言用于web服务器开发的框架,采用的是MTV架构模式进行分层架构。
项目搭建
打开pycharm开发软件,打开开发软件的内置dos窗口操作命令行
在这里指定项目存放的磁盘路径,并使用创建django项目的指令创建当前项目,这里项目中使用django-admin startproject SMBMSSystem 创建了一个项目名为 SMBMSSystem的django服务器项目。
当回车时,只要编辑窗口未显示报错信息,则说明当前项目创建成功,在选择pycharm开发软件的左上角file》open找到打开刚刚创建的项目进行加载出来即可。
加载显示当前项目后,再一次进入内置dos窗口,在当前项目中创建子项目,创建子项目的指令如下:python manage.py startapp SMBMS,执行以上指令,则在当前项目中创建了 SMBMS子项目
将当前子项目名称添加至主项目的setting.py文件中进行管理
在 SMBMS中创建templates文件夹目录,用于存放创建的html模板页面
首页
在templates文件夹中new》html file,定义index.html作为当前子项目的首页,其代码如下
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>超市订单管理系统--登录</title>
<script type="text/javascript">
function btn(obj,i)
//i为1的时候,表示鼠标在按钮上
//i为2的时候,表示鼠标点击了按钮
//i为3的时候,表示鼠标移出了按钮
switch (i)
case 1:
obj.style="width: 120px;background-color: red;border: none;padding: 5px;border-radius: 5px;color: white;";
break;
case 2:
obj.style="width: 120px;background-color: skyblue;border: none;padding: 5px;border-radius: 5px;color: white;";
break;
case 3:
obj.style="width: 120px;background-color: green;border: none;padding: 5px;border-radius: 5px;color: white;";
break;
</script>
<style type="text/css">
table
width: 400px;
border-radius: 5px;
background-color: cadetblue;
td
padding: 10px;
</style>
</head>
<body>
<div align="center" >
<form action="login/" method="get">
% csrf_token %
<table style="margin: auto;text-align: center;">
<tr>
<td colspan="2">
<h3>登录页面</h3>
<hr>
</td>
</tr>
<tr>
<td>用户名:</td>
<td><input type="text" name="username" placeholder="请输入用户名" /></td>
</tr>
<tr>
<td>密码:</td>
<td><input type="password" name="password" placeholder="请输入密码" /></td>
</tr>
<tr >
<td colspan="2"><input type="submit"
onmouseover="btn(this,1)" onmouseout="btn(this,3)" onmousedown="btn(this,2)" value="登录"
style="width: 120px;background-color: green;
border: none;padding: 5px;border-radius: 5px;
color: white;"/></td>
</tr>
</table>
</form>
</div>
</body>
</html>
urls.py
# 进入登录页面的地址
path('',views.index),
views.py
def index(request):
return render(request,"index.html")
接着只需要通过内置dos窗口,编写运行django服务器指令即可,python manage.py runserver,运行服务器后,点击生成的django服务器地址即可
数据库表的创建和数据导入
在子项目的models.py文件中定义数据库表结构类
用户角色类
# 用户角色,用户身份
class Role(models.Model):
# 工号
roleCode=models.CharField(max_length=15,blank=True)
# 角色名称
roleName=models.CharField(max_length=15,blank=True)
# 创建该数据的管理员的id
createdBy = models.IntegerField(blank=True)
# 创建该数据的时间
creationDate = models.CharField(max_length=30, blank=True)
# 修改该数据的管理员的id
modifyBy = models.IntegerField(blank=True)
# 修改该数据的时间
modifyDate = models.CharField(max_length=30, blank=True)
用户类
# 创建用户表
class User(models.Model):
# 用户编码
userCode=models.CharField(max_length=15,blank=True)
# 用户姓名
userName=models.CharField(max_length=15,blank=True)
#用户密码
userPassword=models.CharField(max_length=15,blank=True)
# 性别 1:女,2:男
gender=models.IntegerField()
# 出生日期
birthday=models.CharField(max_length=15,blank=True)
# 手机号
phone=models.CharField(max_length=15,blank=True)
# 地址
address = models.CharField(max_length=30, blank=True)
# 角色,身份id,取之于Role表
userRole=models.IntegerField()
# 创建该数据的管理员的id
createdBy = models.IntegerField(blank=True)
# 创建该数据的时间
creationDate = models.CharField(max_length=30, blank=True)
# 修改该数据的管理员的id
modifyBy = models.IntegerField(blank=True)
# 修改该数据的时间
modifyDate = models.CharField(max_length=30, blank=True)
供应商类
# 供应商表
class Provider(models.Model):
#供应商编码
proCode=models.CharField(max_length=20, blank=True)
# 供应商名称
proName = models.CharField(max_length=20, blank=True)
# 供应商详细描述
proDesc = models.CharField(max_length=50, blank=True)
# 供应商联系人
proContact = models.CharField(max_length=20, blank=True)
# 联系电话
proPhone = models.CharField(max_length=20, blank=True)
# 供应商地址
proAddress = models.CharField(max_length=50, blank=True)
# 传真
proFax = models.CharField(max_length=20, blank=True)
# 创建该数据的管理员的id
createdBy = models.IntegerField(blank=True)
# 创建该数据的时间
creationDate = models.CharField(max_length=30, blank=True)
# 修改该数据的管理员的id
modifyBy = models.IntegerField(blank=True)
# 修改该数据的时间
modifyDate = models.CharField(max_length=30, blank=True)
订单类
# 创建订单表
class Bill(models.Model):
# 账单编码
billCode=models.CharField(max_length=20,blank=True)
# 商品名称
productName = models.CharField(max_length=20, blank=True)
# 商品描述
productDesc = models.CharField(max_length=50, blank=True)
# 商品单位
productUnit = models.CharField(max_length=10, blank=True)
# 商品数量
productCount = models.FloatField(blank=True)
# 商品总额
totalPrice = models.FloatField(blank=True)
# 是否支付(1:未支付 2:已支付)
isPayment = models.IntegerField(blank=True)
# 创建该数据的管理员的id
createdBy = models.IntegerField(blank=True)
# 创建该数据的时间
creationDate = models.CharField(max_length=30, blank=True)
# 修改该数据的管理员的id
modifyBy = models.IntegerField(blank=True)
# 修改该数据的时间
modifyDate = models.CharField(max_length=30, blank=True)
# 供应商ID
providerId = models.IntegerField(blank=True)
紧急联系人类
# 建立紧急联系人地址表
class Address(models.Model):
# 联系人姓名
contact=models.CharField(max_length=15,blank=True)
# 收货地址明细
addressDesc=models.CharField(max_length=50,blank=True)
# 邮政编码
postCode=models.CharField(max_length=15,blank=True)
# 联系人电话
tel=models.CharField(max_length=20,blank=True)
# 创建该数据的管理员的id
createdBy=models.IntegerField(blank=True)
# 创建该数据的时间
creationDate=models.CharField(max_length=30,blank=True)
# 修改该数据的管理员的id
modifyBy=models.IntegerField(blank=True)
# 修改该数据的时间
modifyDate=models.CharField(max_length=30,blank=True)
# 用户id
userId=models.IntegerField()
接着在内置dos窗口中输入python manage.py migrations指令将以上数据库模型类转换成迁移文件
然后输入python manage.py migrate指令将迁移文件转换成数据库对应的表结构
点击打开以上五张表,点击DDL进行执行批量添加数据信息
选中要添加的数据的sql语句,右键execute执行即可,执行结束后,刷新当前表结构,既能看到添加的数据,其他几张表以此类推
角色表数据
INSERT INTO `smbms_role` VALUES ('1', 'SMBMS_ADMIN', '系统管理员', '1', '2016-04-13 00:00:00', 0, '');
INSERT INTO `smbms_role` VALUES ('2', 'SMBMS_MANAGER', '经理', '1', '2016-04-13 00:00:00', 0, '');
INSERT INTO `smbms_role` VALUES ('3', 'SMBMS_EMPLOYEE', '普通员工', '1', '2016-04-13 00:00:00', 0, '');
紧急联系人表数据
INSERT INTO `smbms_address` VALUES ('1', '王丽', '北京市东城区东交民巷44号', '100010', '13678789999', '1', '2016-04-13 00:00:00', '', '', '1');
INSERT INTO `smbms_address` VALUES ('2', '张红丽', '北京市海淀区丹棱街3号', '100000', '18567672312', '1', '2016-04-13 00:00:00', '', '', '1');
INSERT INTO `smbms_address` VALUES ('3', '任志强', '北京市东城区美术馆后街23号', '100021', '13387906742', '1', '2016-04-13 00:00:00', '', '', '1');
INSERT INTO `smbms_address` VALUES ('4', '曹颖', '北京市朝阳区朝阳门南大街14号', '100053', '13568902323', '1', '2016-04-13 00:00:00', '', '', '2');
INSERT INTO `smbms_address` VALUES ('5', '李慧', '北京市西城区三里河路南三巷3号', '100032', '18032356666', '1', '2016-04-13 00:00:00', '', '', '3');
INSERT INTO `smbms_address` VALUES ('6', '王国强', '北京市顺义区高丽营镇金马工业区18号', '100061', '13787882222', '1', '2016-04-13 00:00:00', '', '', '3');
用户表数据
INSERT INTO `smbms_user` VALUES ('1', 'admin', '系统管理员', '1234567', '1', '1983-10-10', '13688889999', '北京市海淀区成府路207号', '1', '1', '2013-03-21 16:52:07', 0, '');
INSERT INTO `smbms_user` VALUES ('2', 'liming', '李明', '0000000', '2', '1983-12-10', '13688884457', '北京市东城区前门东大街9号', '2', '1', '2022-04-22 16:10:36', 0, '');
INSERT INTO `smbms_user` VALUES ('5', 'hanlubiao', '韩路彪', '0000000', '2', '1984-06-05', '18567542321', '北京市朝阳区北辰中心12号', '2', '1', '2014-12-31 19:52:09', 0, '');
INSERT INTO `smbms_user` VALUES ('6', 'zhanghua', '张华', '0000000', '1', '1983-06-15', '13544561111', '北京市海淀区学院路61号', '3', '1', '2013-02-11 10:51:17', 0, '');
INSERT INTO `smbms_user` VALUES ('7', 'wangyang', '王洋', '0000000', '2', '1982-12-31', '13444561124', '北京市海淀区西二旗辉煌国际16层', '3', '1', '2014-06-11 19:09:07', 0, '');
INSERT INTO `smbms_user` VALUES ('8', 'zhaoyan', '赵燕', '0000000', '1', '1986-03-07', '18098764545', '北京市海淀区回龙观小区10号楼', '3', '1', '2016-04-21 13:54:07', 0, '');
INSERT INTO `smbms_user` VALUES ('10', 'sunlei', '孙磊', '0000000', '2', '1981-01-04', '13387676765', '北京市朝阳区管庄新月小区12楼', '3', '1', '2015-05-06 10:52:07', 0, '');
INSERT INTO `smbms_user` VALUES ('11', 'sunxing', '孙兴', '0000000', '2', '1978-03-12', '13367890900', '北京市朝阳区建国门南大街10号', '3', '1', '2016-11-09 16:51:17', 0, '');
INSERT INTO `smbms_user` VALUES ('12', 'zhangchen', '张小晨', '0000000', '1', '1986-04-16', '18098765434', '朝阳区管庄路口北柏林爱乐三期13号楼', '2', '1', '2016-08-09 05:52:37', '1', '2021-10-16 16:55:54');
INSERT INTO `smbms_user` VALUES ('13', 'dengchao', '邓超', '0000000', '2', '1981-11-04', '13689674534', '北京市海淀区北航家属院10号楼', '3', '1', '2016-07-11 08:02:47', 0, '');
INSERT INTO `smbms_user` VALUES ('14', 'yangguo', '杨过', '0000000', '2', '1980-01-01', '13388886623', '北京市朝阳区北苑家园茉莉园20号楼', '3', '1', '2015-02-01 03:52:07', 0, '');
INSERT INTO `smbms_user` VALUES ('15', 'zhaomin', '赵敏', '0000000', '1', '1987-12-04', '18099897657', '北京市昌平区天通苑3区12号楼', '2', '1', '2015-09-12 12:02:12', 0, '');
INSERT INTO `smbms_user` VALUES ('16', 'zhangsan', '张三', '0000000', '2', '2022-05-10', '12345678910', '江西省南昌市济技术开发区志敏1458号', '3', '1', '2022-05-07 09:45:16', 0, '');
供应商表数据
INSERT INTO `smbms_provider` VALUES ('1', 'BJ_GYS001', '北京三木堂商贸有限公司', '长期合作伙伴,主营产品:茅台、五粮液、郎酒、酒鬼酒、泸州老窖、赖茅酒、法国红酒等', '张国强', '13566667777', '北京市丰台区育芳园北路', '010-58858787', '1', '2013-03-21 16:52:07', null, null);
INSERT INTO `smbms_provider` VALUES ('2', 'HB_GYS001', '石家庄帅益食品贸易有限公司', '长期合作伙伴,主营产品:饮料、水饮料、植物蛋白饮料、休闲食品、果汁饮料、功能饮料等', '王军', '13309094212', '河北省石家庄新华区', '0311-67738876', '1', '2016-04-13 04:20:40', null, null);
INSERT INTO `smbms_provider` VALUES ('3', 'GZ_GYS001', '深圳市泰香米业有限公司', '初次合作伙伴,主营产品:良记金轮米,龙轮香米等', '郑程瀚', '13402013312', '广东省深圳市福田区深南大道6006华丰大厦', '0755-67776212', '1', '2014-03-21 16:56:07', null, null);
INSERT INTO `smbms_provider` VALUES ('4', 'GZ_GYS002', '深圳市喜来客商贸有限公司', '长期合作伙伴,主营产品:坚果炒货.果脯蜜饯.天然花茶.营养豆豆.特色美食.进口食品.海味零食.肉脯肉', '林妮', '18599897645', '广东省深圳市福龙工业区B2栋3楼西', '0755-67772341', '1', '2013-03-22 16:52:07', null, null);
INSERT INTO `smbms_provider` VALUES ('5', 'JS_GYS001', '兴化佳美调味品厂', '长期合作伙伴,主营产品:天然香辛料、鸡精、复合调味料', '徐国洋', '13754444221', '江苏省兴化市林湖工业区', '0523-21299098', '1', '2015-11-22 16:52:07', null, null);
INSERT INTO `smbms_provider` VALUES ('6', 'BJ_GYS002', '北京纳福尔食用油有限公司', '长期合作伙伴,主营产品:山茶油、大豆油、花生油、橄榄油等', '马莺', '13422235678', '北京市朝阳区珠江帝景1号楼', '010-588634233', '1', '2012-03-21 17:52:07', null, null);
INSERT INTO `smbms_provider` VALUES ('7', 'BJ_GYS003', '北京国粮食用油有限公司', '初次合作伙伴,主营产品:花生油、大豆油、小磨油等', '王驰', '13344441135', '北京大兴青云店开发区', '010-588134111', '1', '2016-04-13 00:00:00', null, null);
INSERT INTO `smbms_provider` VALUES ('8', 'ZJ_GYS001', '慈溪市广和绿色食品厂', '长期合作伙伴,主营产品:豆瓣酱、黄豆酱、甜面酱,辣椒,大蒜等农产品', '薛圣丹', '18099953223', '浙江省宁波市慈溪周巷小安村', '0574-34449090', '1', '2013-11-21 06:02:07', null, null);
INSERT INTO `smbms_provider` VALUES ('9', 'GX_GYS001', '优百商贸有限公司', '长期合作伙伴,主营产品:日化产品', '李立国', '13323566543', '广西南宁市秀厢大道42-1号', '0771-98861134', '1', '2013-03-21 19:52:07', null, null);
INSERT INTO `smbms_provider` VALUES ('10', 'JS_GYS002', '南京火头军信息技术有限公司', '长期合作伙伴,主营产品:不锈钢厨具等', '陈女士', '13098992113', '江苏省南京市浦口区浦口大道1号新城总部大厦A座903室', '025-86223345', '1', '2013-03-25 16:52:07', null, null);
INSERT INTO `smbms_provider` VALUES ('11', 'GZ_GYS003', '广州市白云区美星五金制品厂', '长期合作伙伴,主营产品:海绵床垫、坐垫、靠垫、海绵枕头、头枕等', '梁天', '13562276775', '广州市白云区钟落潭镇福龙路20号', '020-85542231', '1', '2016-12-21 06:12:17', null, null);
INSERT INTO `smbms_provider` VALUES ('12', 'BJ_GYS004', '北京隆盛日化科技', '长期合作伙伴,主营产品:日化环保清洗剂,家居洗涤专卖、洗涤用品网、墙体除霉剂、墙面霉菌清除剂等', '孙欣', '13689865678', '北京市大兴区旧宫', '010-35576786', '1', '2014-11-21 12:51:11', null, null);
INSERT INTO `smbms_provider` VALUES ('13', 'SD_GYS001', '山东豪克华光联合发展有限公司', '长期合作伙伴,主营产品:洗衣皂、洗衣粉、洗衣液、洗洁精、消杀类、香皂等', '吴洪转', '13245468787', '山东济阳济北工业区仁和街21号', '0531-53362445', '1', '2015-01-28 10:52:07', null, null);
INSERT INTO `smbms_provider` VALUES ('14', 'JS_GYS003', '无锡喜源坤商行', '长期合作伙伴,主营产品:日化品批销', '周一清', '18567674532', '江苏无锡盛岸西路', '0510-32274422', '1', '2016-04-23 11:11:11', null, null);
INSERT INTO `smbms_provider` VALUES ('15', 'ZJ_GYS002', '乐摆日用品厂', '长期合作伙伴,主营产品:各种中、高档塑料杯,塑料乐扣水杯(密封杯)、保鲜杯(保鲜盒)、广告杯、礼品杯', '王世杰', '13212331567', '浙江省金华市义乌市义东路', '0579-34452321', '1', '2016-08-22 10:01:30', null, null);
INSERT INTO `smbms_provider` VALUES ('18', 'XJ_BYS002', '江西青年职业学院', '软件技术,计算机应用,电子商务', '王老师', '15266666666', '江西省南昌市西湖区', '0791-88888888', '2', '2021-10-19 20:24:17', '2022-05-02 15:52:23', '2');
INSERT INTO `smbms_provider` VALUES ('19', 'SZ_GYS001', '深圳华为有限公司', '主营业务:网络通信,人工智能,电脑,手机,制造芯片等等业务', '任正非', '15266666666', '广东省深圳市南山区', '0791-88888666', '2', '2022-04-27 09:42:29', '2022-04-27 10:57:03', '2');
INSERT INTO `smbms_provider` VALUES ('20', 'XJ_BYS003', '深圳腾讯股份有限公司', '开发各种游戏,即时通讯软件,QQ,微信等等', '马化腾', '18199999999', '广东省深圳市南山区', '0791-88888666', '2', '2022-05-02 14:52:31', null, null);
INSERT INTO `smbms_provider` VALUES ('21', 'XJ_BYS004', '杭州阿里巴巴集团', '支付宝,淘宝,菜鸟等等', '马老师', '15288888999', '浙江省杭州市西湖区', '0791-88888666', '2', '2022-05-03 14:49:08', '2022-05-03 15:52:32', '2');
订单表数据
INSERT INTO `smbms_bill` VALUES ('1', 'BILL2016_001', '洗发水、护发素', '日用品-洗发、护发', '瓶', '500.00', '25000.00', '1', '7', '2014-12-14 13:02:03', 0, '', '13');
INSERT INTO `smbms_bill` VALUES ('2', 'BILL2016_002', '香皂、肥皂、药皂', '日用品-皂类', '块', '1000.00', '10000.00', '2', '6', '2016-03-23 04:20:40', 0, '', '13');
INSERT INTO `smbms_bill` VALUES ('3', 'BILL2016_003', '大豆油', '食品-食用油', '斤', '300.00', '5890.00', '2', '8', '2014-12-14 13:02:03', 0, '', '6');
INSERT INTO `smbms_bill` VALUES ('4', 'BILL2016_004', '橄榄油', '食品-进口食用油', '斤', '200.00', '9800.00', '1', '10', '2013-10-10 03:12:13', 0, '', '7');
INSERT INTO `smbms_bill` VALUES ('5', 'BILL2016_005', '洗洁精', '日用品-厨房清洁', '瓶', '500.00', '7000.00', '1', '13', '2014-12-14 13:02:03', 0, '', '9');
INSERT INTO `smbms_bill` VALUES ('6', 'BILL2016_006', '美国大杏仁', '食品-坚果', '袋', '300.00', '5000.00', '1', '14', '2016-04-14 06:08:09', 0, '', '4');
INSERT INTO `smbms_bill` VALUES ('7', 'BILL2016_007', '沐浴液、精油', '日用品-沐浴类', '瓶', '500.00', '23000.00', '2', '8', '2016-07-22 10:10:22', 0, '', '14');
INSERT INTO `smbms_bill` VALUES ('8', 'BILL2016_008', '不锈钢盘碗', '日用品-厨房用具', '个', '600.00', '6000.00', '1', '7', '2016-04-14 05:12:13', 0, '', '14');
INSERT INTO `smbms_bill` VALUES ('9', 'BILL2016_009', '塑料杯', '日用品-杯子', '个', '350.00', '1750.00', '1', '6', '2016-02-04 11:40:20', 0, '', '14');
INSERT INTO `smbms_bill` VALUES ('10', 'BILL2016_010', '豆瓣酱', '食品-调料', '瓶', '200.00', '2000.00', '2', '6', '2013-10-29 05:07:03', 0, '', '8');
INSERT INTO `smbms_bill` VALUES ('11', 'BILL2016_011', '海之蓝', '饮料-国酒', '瓶', '50.00', '10000.00', '1', '11', '2016-04-14 16:16:00', 0, '', '1');
INSERT INTO `smbms_bill` VALUES ('12', 'BILL2016_012', '芝华士', '饮料-洋酒', '瓶', '20.00', '6000.00', '1', '13', '2016-09-09 17:00:00', 0, '', '1');
INSERT INTO `smbms_bill` VALUES ('13', 'BILL2016_013', '长城红葡萄酒', '饮料-红酒', '瓶', '60.00', '800.00', '1', '14', '2016-11-14 15:23:00', 0, '', '1');
INSERT INTO `smbms_bill` VALUES ('14', 'BILL2016_014', '泰国香米', '食品-大米', '斤', '400.00', '5000.00', '1', '13', '2016-10-09 15:20:00', 0, '', '3');
INSERT INTO `smbms_bill` VALUES ('15', 'BILL2016_015', '东北大米', '食品-大米', '斤', '600.00', '4000.00', '1', '11', '2016-11-14 14:00:00', 0, '', '3');
INSERT INTO `smbms_bill` VALUES ('16', 'BILL2016_016', '可口可乐', '饮料', '瓶', '2000.00', '6000.00', '1', '8', '2012-03-27 13:03:01', 0, '', '2');
INSERT INTO `smbms_bill` VALUES ('17', 'BILL2016_017', '脉动', '饮料', '瓶', '1500.00', '4500.00', '1', '7', '2016-05-10 12:00:00', 0, '', '2');
INSERT INTO `smbms_bill` VALUES ('18', 'BILL2016_018', '哇哈哈', '饮料', '瓶', '2000.00', '4000.00', '2', '6', '2015-11-24 15:12:03', 0, '', '2');
INSERT INTO `smbms_bill` VALUES ('20', 'BILL2022_002', '飞天茅台', '酒类', '箱', '100.00', '400000.00', '1', '10', '2022-05-04 11:05:22', 0, '', '1');
INSERT INTO `smbms_bill` VALUES ('21', 'BILL2017_001', '啤酒', '酒类', '瓶', '100.00', '300.00', '1', '6', '2021-10-10 10:10:10', '2', '2022-05-06 09:48:13', '1');
INSERT INTO `smbms_bill` VALUES ('23', 'BILL2022_004', '葵花籽', '炒货,干货', '斤', '1000.00', '10000.00', '1', '8', '2022-05-07 09:17:05', 0, '', '4');
登录功能
当点击登录按钮时,发送请求至login/请求地址,因此,urls.py文件中需要定义该地址进行匹配,并将请求转发给子项目的views.py文件
urls.py
# 接收用户输入的登录的用户名和密码的地址
path('login/',views.login),
views.py
# 定义全局变量,用于保存登录成功之后的用户信息
user=[]
#定义方法,用于接收用户名和密码,做登录验证
def login(request):
username=request.GET["username"]
password=request.GET["password"]
# 将接收的用户名和密码作为查询条件,查询用户表,判断该登录的用户是否存在
# 如果存在则允许该用户进入主页面,否则跳转至登录失败页面,不允许该用户登录
# 将user变量指明为使用外部的全局变量
global user
user=User.objects.filter(userName=username,userPassword=password)
if user:
# 说明该登录的用户存在,允许该用户进入主页
return render(request,"home.html","user":user[0])
else:
# 说明该登录的用户不存在,不允许进入主页,跳转至登录提示页面
return render(request,"loginError.html")
接着创建主页模板和登录失败的模板
home.html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>超市订单管理系统--主页</title>
<style type="text/css">
*
margin: 0px;
padding: 0px;
</style>
<script type="text/javascript">
function yhgl()
//当用户点击用户管理功能的时候,需要判断当前登录的用户的身份,如果是管理员或者经理允许进入,普通员工不允许进入
//先获得当前登录的用户的身份
var input=document.getElementById("hidd");
var i=input.value;
switch (i)
case "1":
//管理员身份
//跳转一个可以操作用户的添加,修改,查询,删除等功能
location.href="/yhgl/?type=1";
break;
case "2":
//经理身份
//跳转一个只能查看普通员工的个人信息的页面
location.href="/yhgl/?type=2";
break;
case "3":
//普通员工身份
alert("您当前没有权限使用该功能");
break;
function gysgl()
//先获得当前登录的用户的身份
var input=document.getElementById("hidd");
var i=input.value;
switch (i)
case "2":
//能和供应商直接对接的只能是经理身份
location.href="/gysgl/?type=2";
break;
case "3":
//普通员工可以查看所有供应商信息,但不能添加,修改,删除供应商信息
location.href="/gysgl/?type=3";
break;
default:
//如果不是经理,那么都不允许操作该功能
alert("当前登录的员工不具备该功能的操作权限");
break;
function ddgl()
var input=document.getElementById("hidd");
var i=input.value;
switch (i)
case "2":
//经理,只能查看所有订单,修改订单,删除订单,不能添加订单,支付金额
location.href="/getBills/";
break;
case "3":
//普通员工,添加订单和查询自己的订单
location.href="/getBillsByUserId/";
break;
default:
//管理员身份不允许操作该功能
alert("当前登录的员工不具备该功能的操作权限");
break;
</script>
</head>
<body>
<div style="width: 1200px;height: 800px;margin: auto;">
<div style="width: 100%;height: 160px;background-color:skyblue;">
<div style="width: 100%;height: 20px;">
<div align="left" style="width: 20%;height: 100%;float: left;" >
<a href="/login/?username= user.userName &password= user.userPassword " style="text-decoration: none;">返回首页</a>
</div>
<div align="right" style="width: 80%;height: 100%;float: right;">
<a>欢迎,<span style="color: red;"> user.userName </span></a>
<a href="/" style="text-decoration: none;">注销</a>
</div>
</div>
<div align="center" style="width: 100%;height: 140px;line-height: 140px;"><h1>超市订单管理系统</h1></div>
</div>
<div align="center" style="width: 100%;height: 640px;background-color: pink;">
<input type="hidden" id="hidd" value=" user.userRole ">
<input type="button" value="用户管理" onclick="yhgl()" style="width: 400px;height: 160px;margin-bottom: 20px;margin-top: 20px;"><br/>
<input type="button" value="供应商管理" onclick="gysgl()" style="width: 400px;height: 160px;margin-bottom: 20px;"><br/>
<input type="button" value="订单管理" onclick="ddgl()" style="width: 400px;height: 160px;margin-bottom: 20px;"><br/>
</div>
</div>
</body>
</html>
loginError.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>超市订单管理系统--提示页面</title>
</head>
<body>
<p>登录失败,用户名不存在或者密码错误,请<a href="/">点击这里</a>进行重新登录!!!</p>
</body>
</html>
其界面效果如下
以上是关于Django第一课 基于Django超市订单管理系统开发的主要内容,如果未能解决你的问题,请参考以下文章