Django 02 :部门管理 【面板设计(Bootstrap)+部门的增删改查(Django+MySQL)】
主题:用户管理系统
文章目录
- 一、新建项目
- 1、创建Django项目
- 2、创建并注册app
- 3、设计表结构
- 4、在MySQL中生成表
- 4.1、连接MySQL,生成数据库
- 4.2、修改配置文件(连接MySQL)
- 4.3、django命令生成表
- 5、静态目录
- 二、员工管理系统
- 1、部门管理
- 1.1、设置导航条
- 1.2、面板区域
- 1.3、部门-数据库数据
- 1.4、部门-添加部门页面
- 1.4.1、基础准备(编写后端页面的跳转逻辑)
- 1.4.2、编写前端(新建部门页面:depart_add.html)
- 1.5、部门-添加
- 1.6、部门-删除
- 1.7、部门-编辑
- 1.7.1、基础效果
- 1.7.2、优化:编辑界面的输入框里有默认值
- 1.7.3、【提交】
一、新建项目
1、创建Django项目
django-admin startproject employeemanage
2、创建并注册app
创建app
cd employeemanage
python manage.py startapp app01
注册app
3、设计表结构
关于 1、用户表的存储名称?ID?
我们创建俩表:
- 员工表:存储员工信息
- 部份表:公司部门种类
那么一个员工属于哪个部门呢?我们是直接把部门名称,还是连表,or用一个id(1:客服;2:运维)表示?
==> 具体参考上图,本项目我们用id
- app01/models.py
from django.db import modelsclass Department(models.Model):""" 部门表 """title = models.CharField(verbose_name='标题', max_length=32)class UserInfo(models.Model):"""员工表1:姓名; 2:密码; 3、年龄; 4、账户余额; 5、入职时间; 6、所属部门; 7、性别。"""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="账户余额", max_digits=10, decimal_places=2, default=0)create_time = models.DateTimeField(verbose_name="入职时间")# 无约束# depart_id = models.BigIntegerField(verbose_name="部门ID")# 1.有约束# - to,与那张表关联# - to_field,表中的那一列关联# 2.django自动# - 写的depart# - 生成数据列 depart_id# 3.部门表被删除# ### 3.1 级联删除depart = models.ForeignKey(to="Department", to_field="id", on_delete=models.CASCADE)# ### 3.2 置空# 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)
4、在MySQL中生成表
4.1、连接MySQL,生成数据库
记得安第三方仓库
pip install mysqlclient
启动mysql
C:\Users\pc>mysql -u root -p Enter password: ************* # 登录后进入终端
创建数据库:
mysql> create database 数据库名字; Query OK, 1 row affected (0.01 sec)
这里表名我设置为:employee
create database employee;
4.2、修改配置文件(连接MySQL)
修改配置文件 settings.py:
DATABASES = {'default': {'ENGINE': 'django.db.backends.mysql','NAME': 'dj', # 数据库名称'USER': 'root', # MySQL的账户名'PASSWORD': 'xxx', # MySQL的密码'HOST': '127.0.0.1', # 哪台机器的MySQL,本机就直接用127.0.0.1'PORT': 3306,}
}
django默认用的数据库是sqlite,现在我们改用mysql
4.3、django命令生成表
python manage.py makemigrations
python manage.py migrate
查看表:
- 进入数据库
use 数据库名字;
show tables;
desc 表的名字;
示例:
mysql> use employee;
Database changed
mysql> show tables;
+----------------------------+
| Tables_in_employee |
+----------------------------+
| app01_department |
| app01_userinfo |
| auth_group |
| auth_group_permissions |
| auth_permission |
| auth_user |
| auth_user_groups |
| auth_user_user_permissions |
| django_admin_log |
| django_content_type |
| django_migrations |
| django_session |
+----------------------------+
12 rows in set (0.00 sec)mysql> desc app01_userinfo;
+-------------+---------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------------+---------------+------+-----+---------+----------------+
| id | bigint | NO | PRI | NULL | auto_increment |
| name | varchar(16) | NO | | NULL | |
| password | varchar(64) | NO | | NULL | |
| age | int | NO | | NULL | |
| account | decimal(10,2) | NO | | NULL | |
| create_time | datetime(6) | NO | | NULL | |
| gender | smallint | NO | | NULL | |
| depart_id | bigint | NO | MUL | NULL | |
+-------------+---------------+------+-----+---------+----------------+
8 rows in set (0.00 sec)mysql>
5、静态目录
二、员工管理系统
1、部门管理
体验,最原始方法来做。
Django中提供 Form 和 ModelForm 组件(方便)
我们先设计一下预想的前端布局:
下面就可以开始制作了!!!
- 设置导航条
- 面板区域
- 部门表格区域
1.1、设置导航条
(1)先引入静态文件
{% load static %}
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title><link rel="stylesheet" href="{% static 'plugins/bootstrap-3.4.1/css/bootstrap.min.css' %}">
</head>
<body><script src="{% static 'js/jquery-3.6.0.min.js' %}"></script>
<script src="{% static 'plugins/bootstrap-3.4.1/js/bootstrap.min.js' %}"></script>
</body>
</html>
(2)到Bootstrap官网找导航条示例代码,并修改成我们想要的样子
到Bootstrap官网找样式:组件 · Bootstrap v3 中文文档 | Bootstrap 中文网 (bootcss.com)
且这个效果中存在圆角效果,我们想要将其除去,只需在html文件中添加:
<style>.navbar{border-radius: 0;}</style>
CSS属性 border-radius用来设置边框圆角。当使用一个半径时确定一个圆形;当使用两个半径时确定一个椭圆,这个(椭)圆与边框的交集形成圆角效果。
再加上从Bootstrap官网复制下来的“导航条”前端代码,导航栏基础效果就完成了,代码如下:
{% load static %}
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title><link rel="stylesheet" href="{% static 'plugins/bootstrap-3.4.1/css/bootstrap.min.css' %}"><style>.navbar{border-radius: 0;}</style>
</head>
<body>
<nav class="navbar navbar-default"><div class="container-fluid"><!-- Brand and toggle get grouped for better mobile display --><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="#">Brand</a></div><!-- Collect the nav links, forms, and other content for toggling --><div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1"><ul class="nav navbar-nav"><li class="active"><a href="#">Link <span class="sr-only">(current)</span></a></li><li><a href="#">Link</a></li><li class="dropdown"><a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Dropdown <span class="caret"></span></a><ul class="dropdown-menu"><li><a href="#">Action</a></li><li><a href="#">Another action</a></li><li><a href="#">Something else here</a></li><li role="separator" class="divider"></li><li><a href="#">Separated link</a></li><li role="separator" class="divider"></li><li><a href="#">One more separated link</a></li></ul></li></ul><form class="navbar-form navbar-left"><div class="form-group"><input type="text" class="form-control" placeholder="Search"></div><button type="submit" class="btn btn-default">Submit</button></form><ul class="nav navbar-nav navbar-right"><li><a href="#">Link</a></li><li class="dropdown"><a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Dropdown <span class="caret"></span></a><ul class="dropdown-menu"><li><a href="#">Action</a></li><li><a href="#">Another action</a></li><li><a href="#">Something else here</a></li><li role="separator" class="divider"></li><li><a href="#">Separated link</a></li></ul></li></ul></div><!-- /.navbar-collapse --></div><!-- /.container-fluid -->
</nav><script src="{% static 'js/jquery-3.6.0.min.js' %}"></script>
<script src="{% static 'plugins/bootstrap-3.4.1/js/bootstrap.min.js' %}"></script>
</body>
</html>
python manage.py runserver
(注意:单打开这个HTML文件是没有效果的,需要我们开启Django项目,访问设置的url
效果展示:
这个是BootStrap官网提供的导航栏
现在,我们根据自己的需求尽行修改
首先,上面那个导航条中的(从左到右):
- “Dropdown”下拉菜单
- “Search”输入框
- “Submit”提交键
- 最右边的“Dropdown”下拉菜单(作为)
是我们不需要的,我们在原html文件中找到他们,并删掉
{% load static %}
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title><link rel="stylesheet" href="{% static 'plugins/bootstrap-3.4.1/css/bootstrap.min.css' %}"><style>.navbar{border-radius: 0;}</style>
</head>
<body>
<nav class="navbar navbar-default"><div class="container-fluid"><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="#">部门管理</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">Coder01 <span class="caret"></span></a><ul class="dropdown-menu"><li><a href="#">个人资料</a></li><li><a href="#">我的信息</a></li><li role="separator" class="divider"></li><li><a href="#">注销</a></li></ul></li></ul></div></div>
</nav><script src="{% static 'js/jquery-3.6.0.min.js' %}"></script>
<script src="{% static 'plugins/bootstrap-3.4.1/js/bootstrap.min.js' %}"></script>
</body>
</html>
效果展示:
如果想让导航栏有居中效果:
效果展示:
1.2、面板区域
写完了导航栏,下面就是
在html中导航栏部分的下面添加:
<div><div class="container"><div><a class="btn btn-primary" href="depart_add.html">新建部门</a>{#新建一个 depart_add.html , 用来写新建部门界面#}</div></div>
引入面板
<div><div class="container"><div><a class="btn btn-primary" href="depart_add.html">新建部门</a>{#新建一个 depart_add.html , 用来写新建部门界面#}</div><div class="panel panel-default"><div class="panel-heading">Panel heading without title</div><div class="panel-body">Panel content</div></div>
然后引入表格
引入表格其实有个更简便的方式:
直接copy官方给的这个“演示表格”的前端代码
然后复制
代码展示:
<div><div class="container"><div><a class="btn btn-primary" href="depart_add.html">新建部门</a>{#新建一个 depart_add.html , 用来写新建部门界面#}</div><div class="panel panel-default"><!-- Default panel contents --><div class="panel-heading">Panel heading</div><!-- Table --><table class="table"><thead><tr><th>#</th><th>First Name</th><th>Last Name</th><th>Username</th></tr></thead><tbody><tr><th scope="row">1</th><td>Mark</td><td>Otto</td><td>@mdo</td></tr><tr><th scope="row">2</th><td>Jacob</td><td>Thornton</td><td>@fat</td></tr><tr><th scope="row">3</th><td>Larry</td><td>the Bird</td><td>@twitter</td></tr></tbody></table></div></div>
效果演示:
然后可以加点细节:
效果展示:
然后我们把“Panel heading”的字样变为“部门列表”,再加个小图样
- 老样子,找到图标,检查它,然后复制代码
<div class="panel-heading"><span class="glyphicon glyphicon-th-list" aria-hidden="true"></span>部门列表
</div>
效果展示:
然后,我们就要对表中数据进行增删改了
- 表格又三列:ID、部门名称、操作 ==> 删掉html文件中的数据就好了
- 操作中有俩按钮:编辑和删除 ==> 使用 btn (作用:添加按钮)
<!-- 表格部分 --><table class="table table-bordered"><thead><tr><th>ID</th><th>名称</th><th>操作</th></tr></thead><tbody><tr><th>1</th><td>销售部</td><td><a class="btn btn-primary btn-xs">编辑</a>{# btn ==> 添加btn的按钮#}{# btn-primary ==> 蓝色按钮(按钮的样式)#}{# btn-xs ==> 这会让按钮看起来特别小(按钮大小)#}<a class="btn btn-danger btn-xs">删除</a></td></tr></tbody></table></div></div>
效果展示:
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.4.1/css/bootstrap.min.css' %}"><style>.navbar {border-radius: 0;}</style>
</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="#">部门管理</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">Coder01 <span class="caret"></span></a><ul class="dropdown-menu"><li><a href="#">个人资料</a></li><li><a href="#">我的信息</a></li><li role="separator" class="divider"></li><li><a href="#">注销</a></li></ul></li></ul></div></div>
</nav><div><div class="container"><div style="margin-bottom: 10px"><a class="btn btn-success" href="depart_add.html"><span class="glyphicon glyphicon-plus-sign" aria-hidden="true"></span>新建部门</a>{#新建一个 depart_add.html , 用来写新建部门界面#}</div><div class="panel panel-default"><!-- Default panel contents --><div class="panel-heading"><span class="glyphicon glyphicon-th-list" aria-hidden="true"></span>部门列表</div><!-- 表格部分 --><table class="table table-bordered"><thead><tr><th>ID</th><th>名称</th><th>操作</th></tr></thead><tbody><tr><th>1</th><td>销售部</td><td><a class="btn btn-primary btn-xs">编辑</a>{# btn ==> 添加btn的按钮#}{# btn-primary ==> 蓝色按钮(按钮的样式)#}{# btn-xs ==> 这会让按钮看起来特别小(按钮大小)#}<a class="btn btn-danger btn-xs">删除</a></td></tr></tbody></table></div></div></div><script src="{% static 'js/jquery-3.6.0.min.js' %}"></script>
<script src="{% static 'plugins/bootstrap-3.4.1/js/bootstrap.min.js' %}"></script>
</body>
</html>
1.3、部门-数据库数据
- 用sql语句创建数据
- 在后端获取数据,并传入前端
- 在前端处理数据
(1)用sql语句创建数据
mysql -u root -p
use employee
show tables;
desc app01_userinfo;
desc app01_department;
insert into app01_department(title) values("IT部门"),("销售部");
select * from app01_department;
(2)在后端获取数据,并传入前端
app01/views.py
from django.shortcuts import render
from app01 import models# Create your views here.
def depart_list(request):"""部门列表"""# 去数据库中获取所有的部门列表# 通过导入模块的方式直接获取所有表,存入queryset,省的表多的时候一个一个导入太麻烦了queryset = models.Department.objects.all() # queryset 形式就是一个一个对象 [对象,对象,对象]return render(request, "depart_list.html", {'queryset': queryset})
这样数据就放在queryset这个变量里了,并传入前端
(3)在前端处理数据
depart_list.html
<!-- 表格部分 --><table class="table table-bordered"><thead><tr><th>ID</th><th>名称</th><th>操作</th></tr></thead><tbody>{% for obj in queryset %}<tr><th>{{ obj.id }}</th><td>{{ obj.title }}</td><td><a class="btn btn-primary btn-xs">编辑</a>{# btn ==> 添加btn的按钮#}{# btn-primary ==> 蓝色按钮(按钮的样式)#}{# btn-xs ==> 这会让按钮看起来特别小(按钮大小)#}<a class="btn btn-danger btn-xs">删除</a></td></tr>{% endfor %}</tbody></table>
效果展示:
1.4、部门-添加部门页面
任务:点击添加部门,进入部门添加页面
预想效果:
1.4.1、基础准备(编写后端页面的跳转逻辑)
- 在列表页面(depart_list.html)添加跳转(href)
- 在urls.py添加url(”depart/add/“)
- 编写视图函数(app01/views.py)
(1)修改depart_list.html下的“新建部门”部分
修改href
,使之指向/depart/add/
这个url
<a class="btn btn-success" href="/depart/add/" >{# 可以添加一个 target="_blank" : 会打开一个新的标签页,如果不设置,会在原页面打开(这里我们还是在当前页面打开) #}<span class="glyphicon glyphicon-plus-sign" aria-hidden="true"></span>新建部门</a>
(2)在urls.py中添加”depart/add/“
urlpatterns = [path('depart/list/', views.depart_list),path('depart/add/', views.depart_add),
]
(3)在app01/views.py(视图函数)中添加函数 depart_add( )
def depart_add(request):""" 添加部门 """pass
1.4.2、编写前端(新建部门页面:depart_add.html)
(1)引入静态文件
{% load static %}
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>新建部门</title><link rel="stylesheet" href="{% static 'plugins/bootstrap-3.4.1/css/bootstrap.min.css' %}"><style>.navbar {border-radius: 0;}</style>
</head>
<body>
{# 导航条部分 #}{# 添加部门部分 #}<script src="{% static 'js/jquery-3.6.0.min.js' %}"></script>
<script src="{% static 'plugins/bootstrap-3.4.1/js/bootstrap.min.js' %}"></script>
</body>
</html>
(2)复用导航栏代码+新建部门
- copy
depart_list.html
中的导航栏代码 - 编写新建部门功能:老样子,Bootstrap官网找模板
这里不再叙述,直接上代码:
depart_add.html
{% load static %}
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>新建部门</title><link rel="stylesheet" href="{% static 'plugins/bootstrap-3.4.1/css/bootstrap.min.css' %}"><style>.navbar {border-radius: 0;}</style>
</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="#">部门管理</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">Coder01 <span class="caret"></span></a><ul class="dropdown-menu"><li><a href="#">个人资料</a></li><li><a href="#">我的信息</a></li><li role="separator" class="divider"></li><li><a href="#">注销</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>标题</label><input type="text" class="form-control" placeholder="标题" name="title"></div><button type="submit" class="btn btn-primary">提交</button></form></div></div></div>
</div><script src="{% static 'js/jquery-3.6.0.min.js' %}"></script>
<script src="{% static 'plugins/bootstrap-3.4.1/js/bootstrap.min.js' %}"></script>
</body>
</html>
1.5、部门-添加
(1)前端处理
(2)后端处理
app01/views.py
from django.shortcuts import render, redirect
from app01 import models# Create your views here.
def depart_list(request):"""部门列表"""# 去数据库中获取所有的部门列表# 通过导入模块的方式直接获取所有表,存入queryset,省的表多的时候一个一个导入太麻烦了queryset = models.Department.objects.all() # queryset 形式就是一个一个对象 [对象,对象,对象]return render(request, "depart_list.html", {'queryset': queryset})def depart_add(request):""" 添加部门 """# (1)处理GET请求# 在部门聊表界面点击”新建部门“ ==> 提交GET请求(去 depart_add.html)if request.method == "GET":return render(request, 'depart_add.html')# (2)获得用户POST提交过来的数据title = request.POST.get("title")"""遗留问题:输入为空怎么办?输入合不合法?等等"""# (3)保存到数据库models.Department.objects.create(title=title)# (4)重定向回部门列表return redirect("/depart/list/")
效果展示:
- 输入”企划部“和”新媒体“俩部门
- 每次提交后自动跳转回部门列表管理界面,并显示新建的部门
1.6、部门-删除
任务:点击部门管理界面中列表中的删除键,及删除该部门
原理:点击删除 ==> 访问’https//127.0.0.1:8000/depart/delete/?nid=1’ ==> 获取url中nid的值,删除部门
(1)urls.py
urlpatterns = [path('depart/list/', views.depart_list),path('depart/add/', views.depart_add),path('depart/detele/', views.depart_detele)
]
(2)views.py
def depart_detele(request):"""删除部门"""# 获取ID# 'https//127.0.0.1:8000/depart/delete/?nid=1'nid = request.GET.get("nid")# 删除models.Department.objects.filter(id=nid).delete()# 重定向回部门列表return redirect("/depart/list/")
(3)depart_list.html
只需要修改一句:
为原本的”删除“键添加href
<a class="btn btn-danger btn-xs">删除</a>
<a class="btn btn-danger btn-xs" href="/depart/detele/?nid={{ obj.id }}">删除</a>
效果展示:
点击删除
1.7、部门-编辑
任务:
- 点击列表中的"编辑",进入一个类似”新建部门“的界面,编辑部门
- 编辑界面的输入框有:默认值 ==> 点击【编辑】时顺便获取id,并提供id搜索title(部门名称)
1.7.1、基础效果
urls.py
path('depart/edit/', views.depart_edit),
app01/views.py
def depart_edit(request):"""修改部门"""return render(request, 'depart_edit.html')
depart_edit.html
直接Copy
depart_add.html
,修改一下文字depart_list.html
<a class="btn btn-primary btn-xs" href="/depart/edit/">编辑</a>
效果展示:
点击“编辑”
1.7.2、优化:编辑界面的输入框里有默认值
urls.py
添加正则表达式
<int:nid>
,得到nidpath('depart/<int:nid>/edit/', views.depart_edit),
views.py
def depart_edit(request, nid):"""修改部门"""# 根据nid,获得他的数据row_object = models.Department.objects.filter(id=nid).first()print(row_object.id, row_object.title)return render(request, 'depart_edit.html', {'row_object': row_object})
depart_list.html
<a class="btn btn-primary btn-xs" href="/depart/{{ obj.id }}/edit/">编辑</a>
depart_edit.html
<div class="form-group"><label>标题</label><input type="text" class="form-control" placeholder="标题" name="title"value="{{ row_object.title }}"></div>
点击 [编辑] 会报:Page not found
解决方法:重启django项目:python manage.py runserver
效果展示:
终端可以看到输出:
[23/Feb/2022 01:39:02] "GET /depart/list/ HTTP/1.1" 200 3890
1 IT部门
1.7.3、【提交】
- views.py
def depart_edit(request, nid):"""修改部门"""if request.method == "GET":# 根据nid,获得他的数据row_object = models.Department.objects.filter(id=nid).first()print(row_object.id, row_object.title)return render(request, 'depart_edit.html', {'row_object': row_object})# 获取用户提交的标题title = request.POST.get("title")# 根据ID找到数据库中的数据(部门名称),并更新models.Department.objects.filter(id=nid).update(title=title)# 重定向回部门列表return redirect("/depart/list/")
效果展示:
Django 02 :部门管理 【面板设计(Bootstrap)+部门的增删改查(Django+MySQL)】相关推荐
- java部门管理_系统管理模块_部门管理_实现基本的增删改查功能
系统管理模块_部门管理1_实现基本的增删改查功能 先不考虑上级部门 设计实体.表 1.设计实体 Department.java public classDepartment {privateLong ...
- BootStrap实现带有增删改查功能的表格(DEMO详解)
前言 bootstrap的表格样式,有类似EasyUI的表格,也有卡片式表格,放到移动端显示,各有千秋.但是BootStrap自带的表格是没有操作列的,网上的资源不少,但是都是比较单一.零碎,JS.C ...
- ManytoMany字段增删改查Django
Django下ManytoMany 增删改查 建立学生类老师类多对多关系,用ManytoManyField,迁移同步后自动生成中间表tb_Teacher_Student # 学生类 class Stu ...
- Django简易测试平台三:模块的增删改查
1.新建模块base INSTALLED_APPS 增加模块名:base 2.路由设计 1)API/urls.py 配置: 新增如下内容 url(r'^base', include("bas ...
- vue django mysql_django2 rest_framework + vue.js + mysql5.6 实现增删改查
1.安装pymysql,mysqlclient,创建项目django-admin startproject django3 2.在Mysql中创建一个数据库叫django3db,打开项目,修改一下数据 ...
- python增删改查人名管理_python3字典列表的增删改查(名片管理系统函数版)
1.列表的增删改查 增加:有三种添加方式(append.insert.extend) #append:把添加的内容直接添加到列表的末尾 a=[1,2,3] a.append('abc') print( ...
- 02.Mybatis的动态代理方式实现增删改查
动态代理的方式实现增删改查: 通过约定的方式定位sql语句 约定 > 配置文件 > 硬编码 约定的目标是省略掉通过硬编码的方式定位sql的代码,通过接口直接定位出sql语句,以下代码为通过 ...
- python增删改查的框架_python的Web框架,Django的ORM,模型基础,MySQL连接配置及增删改查...
Django中的ORM简介 ORM概念:对象关系映射(Object Relational Mapping,简称ORM): 用面向对象的方式描述数据库,去操作数据库,甚至可以达到不用编写SQL语句就能够 ...
- Django 07模型层—单表操作(增删改查)
单表查询 一.数据库相关设置 ''' # Mysql连接配置 DATABASES = {'default': {'ENGINE': 'django.db.backends.mysql','NAME': ...
- django关于Mysql增删改查操作以及浏览器数据返回
1.serializers: from django.core import serializersdef squitData(request):#查询一条#c1=Catinfo.objects.ge ...
最新文章
- 面试总结-百度(1)
- laravel 报错htmlspecialchars() expects parameter 1 to be string, object given
- 【WPF】ListBox嵌套与事件冒泡
- 说一说Android事件分发中的requestDisallowInterceptTouchEvent
- 挑战程序设计竞赛部分题目选择排序、二分查找找出下标、深度优先算法、求三角形max周长、蚂蚁算法、操作excel
- java 标准输入流 关闭 打开_java--标准输入输出流
- H264中DCT变换,量化,反量化,反DCT变换
- freecplus框架简介
- 优秀的程序员是如何诞生的?
- 如何控制写入文件大小java_写入文本文件时如何更改字体大小 - java
- Java关键字与保留字
- DS4000系列存储配置storage manager介绍
- WPS JS 宏搜索带颜色的字的笔记
- MSF evasion模块的使用
- 基于人工神经网络的识别Matlab,基于人工神经网络的汽车牌照识别MATLAB实现
- 尊尊网如何从0-1启动私域运营
- GPGPU基础(一):一些基本概念
- Win7 未识别网络 的20种常见解决方案
- 新堂NUC505开发板第一炮-启动篇
- 电池寿命问题 (贪心)