基于Django的员工管理系统
目录
一、新建项目
二、创建app
三、设计表结构
四、在MySQL中生成表
五、静态文件管理
六、添加页面
七、模板的继承
一、新建项目
django-admin startproject 员工管理系统
二、创建app
startapp app01
三、设计表结构
app01/migrations/models.py
from django.db import modelsclass Department(models.Model):""" 部门表"""title = models.CharField(verbose_name='标题', max_length=32)class UserInfo(models.Model):"""员工表"""name = models.CharField(verbose_name='姓名', max_length=16)password = models.CharField(verbose_name='密码', max_length=64)age = models.IntegerField(verbose_name="年龄")account = models.DecimalField(verbose_name="账户余额", decimal_places=2, max_digits=10, default=0) # 小数点后两位,最长有10位数字create_time = models.DateTimeField(verbose_name="入职时间")depart = models.ForeignKey(to="Department", to_field="id",on_delete=models.CASCADE)gender_choice = ((1, "男"),(2, "女"),)gender = models.SmallIntegerField(verbose_name="性别",choices=gender_choice)
无约束 depart_id = models.BigIntegerField(verbose_name="部门ID") 约束 只能是部门中已经存在的ID - to,与那张表关联 - to_field,表中的一列关联 - 写的是depart 生成数据列,depart_iddepart = models.ForeignKey(to="Department",to_field="id")
删除部分的时候,关联的用户
级联删除
depart = models.ForeignKey(to="Department", to_field="id",on_delete=models.CASCADE)
ID列置空
depart = models.ForeignKey(to="Department", to_field="id", null = True,blank=True, on_delete=models.SET_NULL)
Django中的约束
gender_choices = ((1, "男"),(2, "女"),
)
gender = models.SmallIntegerField(verbose_name="性别", choices=gender_choices)
四、在MySQL中生成表
- 创建数据库
create database StaffManagement DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
- Django修改配置文件,连接数据库 员工管理系统/员工管理系统/setting.py
DATABASES = {'default': {'ENGINE': 'django.db.backends.mysql','NAME': 'staffmanagement','USER': 'root','PASSWORD': '123123','HOST': '127.0.0.1','PORT': '3306',}
}
- Django命令生成数据库表
makemigrations + migrate
表结构创建成功:
五、静态文件管理
部门管理
Django中提供Form和ModelForm组件(方便)
depart_list.html
{% load static %}
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title><link rel="stylesheet" href="{% static 'plugins/bootstrap-3.3.7-dist/css/bootstrap.css' %}">
</head>
<body>
<nav class="navbar navbar-default"><div class="container"><div class="navbar-header"><button type="button" class="navbar-toggle collapsed" data-toggle="collapse"data-target="#bs-example-navbar-collapse-1" aria-expanded="false"><span class="sr-only">Toggle navigation</span><span class="icon-bar"></span><span class="icon-bar"></span><span class="icon-bar"></span></button><a class="navbar-brand" href="#">联通用户管理系统</a></div><div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1"><ul class="nav navbar-nav"><li><a href="/depart/list/">部门管理</a></li></ul><ul class="nav navbar-nav navbar-right"><li><a href="#">登录</a></li><li class="dropdown"><a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true"aria-expanded="false">登录信息 <span class="caret"></span></a><ul class="dropdown-menu"><li><a href="#">个人资料</a></li><li><a href="#">我的信息</a></li><li><a href="#">注销</a></li><li role="separator" class="divider"></li><li><a href="#">Separated link</a></li></ul></li></ul></div></div>
</nav>
<div><div class="container"><div style="margin-bottom: 10px"><a href="#" class="btn btn-primary btn-success"><span class="glyphicon glyphicon-plus" aria-hidden="true"></span>新建部门</a></div><table class="table table-bordered"><span class="glyphicon glyphicon-th-list" aria-hidden="true"></span>部门列表<thead><tr><th>ID</th><th>名称</th><th>操作</th></tr></thead><tbody><tr><th scope="row">1</th><td>销售部</td><td><a href="" class="btn btn-primary btn-xs">编辑</a><a href="" class="btn btn-danger btn-xs">删除</a></td></tr></tbody></table></div>
</div>
<script src="{% static 'js/jQuery.js' %}"></script>
<script src="{% static 'plugins/bootstrap-3.3.7-dist/js/bootstrap.js' %}"></script>
</body>
</html>
初步结果展示
六、添加页面
需要一个添加页面的话,实现效果为点击新建部门跳转到新建部门的窗口
初步创建和编写
编写HTML文件
{% load static %}
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title><link rel="stylesheet" href="{% static 'plugins/bootstrap-3.3.7-dist/css/bootstrap.css' %}">
</head>
<body>
<nav class="navbar navbar-default"><div class="container"><div class="navbar-header"><button type="button" class="navbar-toggle collapsed" data-toggle="collapse"data-target="#bs-example-navbar-collapse-1" aria-expanded="false"><span class="sr-only">Toggle navigation</span><span class="icon-bar"></span><span class="icon-bar"></span><span class="icon-bar"></span></button><a class="navbar-brand" href="#">联通用户管理系统</a></div><div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1"><ul class="nav navbar-nav"><li><a href="/depart/list/">部门管理</a></li></ul><ul class="nav navbar-nav navbar-right"><li><a href="#">登录</a></li><li class="dropdown"><a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true"aria-expanded="false">登录信息 <span class="caret"></span></a><ul class="dropdown-menu"><li><a href="#">个人资料</a></li><li><a href="#">我的信息</a></li><li><a href="#">注销</a></li><li role="separator" class="divider"></li><li><a href="#">Separated link</a></li></ul></li></ul></div></div>
</nav><div><div class="container"><div class="panel panel-default"><div class="panel-heading"><h3 class="panel-title">新建部门</h3></div><div class="panel-body"><form><div class="form-group"><label for="exampleInputEmail1">标题</label><input type="text" class="form-control" placeholder="标题" name="title"></div><button type="submit" class="btn btn-default">提交</button></form></div></div></div>
</div>
<script src="{% static 'js/jQuery.js' %}"></script>
<script src="{% static 'plugins/bootstrap-3.3.7-dist/js/bootstrap.js' %}"></script>
</body>
</html>
添加部门
def depart_add(request):"""添加部门"""if request.method == "GET":return render(request, 'depart_add.html')title = request.POST.get("title")models.Department.objects.create(title=title)# 重定向回定向列表return redirect("/depart/list/")
删除部门
def depart_delete(request):"""删除部门"""nid = request.GET.get('nid')models.Department.objects.filter(id=nid).delete()return redirect("/depart/list/")
编辑部门
编写HTML文件
{% load static %}
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title><link rel="stylesheet" href="{% static 'plugins/bootstrap-3.3.7-dist/css/bootstrap.css' %}">
</head>
<body>
<nav class="navbar navbar-default"><div class="container"><div class="navbar-header"><button type="button" class="navbar-toggle collapsed" data-toggle="collapse"data-target="#bs-example-navbar-collapse-1" aria-expanded="false"><span class="sr-only">Toggle navigation</span><span class="icon-bar"></span><span class="icon-bar"></span><span class="icon-bar"></span></button><a class="navbar-brand" href="#">联通用户管理系统</a></div><div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1"><ul class="nav navbar-nav"><li><a href="/depart/list/">部门管理</a></li></ul><ul class="nav navbar-nav navbar-right"><li><a href="#">登录</a></li><li class="dropdown"><a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true"aria-expanded="false">登录信息 <span class="caret"></span></a><ul class="dropdown-menu"><li><a href="#">个人资料</a></li><li><a href="#">我的信息</a></li><li><a href="#">注销</a></li><li role="separator" class="divider"></li><li><a href="#">Separated link</a></li></ul></li></ul></div></div>
</nav><div><div class="container"><div class="panel panel-default"><div class="panel-heading"><h3 class="panel-title">修改部门</h3></div><div class="panel-body"><form method="post">{% csrf_token %}<div class="form-group"><label for="exampleInputEmail1">标题</label><input type="text" class="form-control" placeholder="标题" name="title" value="{{ row_object.title }}"></div><button type="submit" class="btn btn-default">提交</button></form></div></div></div>
</div>
<script src="{% static 'js/jQuery.js' %}"></script>
<script src="{% static 'plugins/bootstrap-3.3.7-dist/js/bootstrap.js' %}"></script>
</body>
</html>
编写view.py
def depart_edit(request, nid):"""部门编辑"""if request.method == "GET":# 根据nid,获取数据row_object = models.Department.objects.filter(id=nid).first()return render(request, 'depart_edit.html', {"row_object": row_object})# 如果是POST请求,保存修改title = request.POST.get('title')models.Department.objects.filter(id=nid).update(title=title)# 重定向回部门列表return redirect('/depart/list/')
七、模板的继承
继承母版 ‘layout.html’
{% extends 'layout.html' %}{% block css %}<link rel="stylesheet" href="{% static 'pluxxx.css' %}"><style>...</style>
{% endblock %}{% block content %}<h1>首页</h1>
{% endblock %}{% block js %}<script src="{% static 'js/jqxxxin.js' %}"></script>
{% endblock %}
继承的文件
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title><link rel="stylesheet" href="{% static 'plugin...min.css' %}">{% block css %}{% endblock %}
</head>
<body><h1>标题</h1><div>{% block content %}{% endblock %}</div><h1>底部</h1><script src="{% static 'js/jquery-3.6.0.min.js' %}"></script>{% block js %}{% endblock %}
</body>
</html>
基于Django的员工管理系统相关推荐
- python 工资管理软件_基于[Python]的员工管理系统
基于[Python]的员工管理系统 -------------------------------- 简介 使用python语言来完成一个员工管理系统,员工信息包含:员工工号,姓名, 年龄,性别,职位 ...
- 【毕业设计】 基于Django的图书管理系统
文章目录 1 前言 2 背景意义 3 功能需求 4 技术栈 5 实现效果 6 项目架构 7 数据库表设计 7.1 出版社信息表 7.2 图书信息表 7.3 作者信息表 7.4 用户信息表 8 部分代码 ...
- 基于django奶茶店管理系统
1,项目功能: (1)采购单创建:该模块可以实现通过添加采购信息,并把采购信息录入数据库. (2)采购单查看:该模块实现采购单的查看,查看采购的详细信息. (3)仓库订单确认:通过订单信息查看,并进行 ...
- 狂神SpringBoot学习笔记12天-Day 06 基于SpringBoot的员工管理系统
6.基于SpringBoot的员工管理系统 写在前面 参考CSDN博主Baret-H 原文链接(77条消息) 狂神Spring Boot 员工管理系统 超详细完整实现教程(小白轻松上手~)_Baret ...
- 基于[Python]的员工管理系统
基于[Python]的员工管理系统 -------------------------------- 简介 使用python语言来完成一个员工管理系统,员工信息包含:员工工号,姓名, 年龄,性别,职位 ...
- python基于django学生成绩管理系统o8mkp
目录 1 绪论 1 1.1课题背景 1 1.2课题研究现状 1 1.3初步设计方法与实施方案 2 1.4本文研究内容 2 2 系统开发环境 4 2.1 django简介 4 2.3 B/S结构简介 ...
- (附源码)基于django校园宿舍管理系统-计算机毕设84831
django校园宿舍管理系统 摘 要 本论文主要论述了如何使用Django开发一个校园宿舍管理系统,本系统将严格按照软件开发流程进行各个阶段的工作,采用B/S架构,面向对象编程思想进行项目开发.在引言 ...
- python基于Django的汽车俱乐部管理系统vue
基于Python技术.Django框架.B/S机构.Mysql数据库设计并实现了汽车俱乐部管理系统.系统主要包括首页,个人中心,用户管理,车辆信息管理,俱乐部介绍管理,汽车用品管理,自驾游路线管理,在 ...
- [附源码]计算机毕业设计基于Java的员工管理系统Springboot程序
项目运行 环境配置: Jdk1.8 + Tomcat7.0 + Mysql + HBuilderX(Webstorm也行)+ Eclispe(IntelliJ IDEA,Eclispe,MyEclis ...
最新文章
- linux命令 iperf-网络性能测试工具
- 03_NoSQL数据库之Redis数据库:list类型
- 【Android 安装包优化】资源混淆 ( AAPT2 资源编译工具 | resources.arsc 资源映射表 工作机制 )
- skynet 报错 skynet 服务缺陷 Lua死循环
- jstl mysql_java – jsp jstl sql与mysql中的奇怪行为
- 利用T-SQL处理SQL Server数据库表中的重复行
- IIS6应用程序池中间的 Web 园
- 我背着女朋友,用 Python 偷偷抓取了她的行踪(单身狗勿进)
- 人生七大纲要——道、德、仁、义礼、智、信
- 2018最新Jrebel激活服务,Jrebel激活,Jrebel激活码,Jrebel破解
- 怎么制定合理的开发计划
- PowerGUI错误-Microsoft SharePoint is not supported with version 4 of the Microsoft .Net Runtime
- 计算机控制点火系统的三个阶段,汽车发动机电控技期末考解答.doc
- 某电商App 返回数据加密解密分析(四)
- [转]阿里云的这群疯子
- 10. 检测域名是否到期
- 10个高质量的简历制作网站推荐
- C语言 | 单链表的冒泡排序
- 洛谷--橙色百道DP总结
- cad高版本怎么转换成低版本?转换方法一览
热门文章
- 灰色关联度分析,灰色预测——基于matlab
- [转载]英语阅读用到的英文词汇收藏
- R语言-关键节点问题-方案四-K-shell分解法
- 【工具篇】10分钟快速学会React图表搭建
- 84.网络安全渗透测试—[SQL注入篇23]—[高级注入技巧-dnslog无回显注入]
- 学UI设计得拥有哪些条件才能学会?
- MCS-51单片机精确定时的两种编程方法介绍
- 双均线matlab操作,双均线系统实战法则
- java学习笔记(13) 第13章 - 常用类
- Xcode 史上最全canOpenURL: failed问题解决办法