Django 编写一级菜单
Django是一种开源的大而且全的Web应用框架,是由python语言来编写的
Django创建完成,需要先修改Django settings.py配置文件
1:先修改数据库连接
DATABASES = {
'default': {
"ENGINE": "django.db.backends.mysql",
"NAME": "gmrz_crm",
"USER": "root",
"PASSWORD": "admin",
"HOST": "127.0.0.1",
"POST": 3306
}
}
2:新建静态存储目录(statics)。并修改配置文件
STATICFILES_DIRS = [
os.path.join(BASE_DIR,'statics')
]
一般项目是从 URL ----> views ---> model ----> HTML
URL:
from django.conf.urls import url,include
from depart.views import depart
urlpatterns = [
# 展示部门URL
url(r'depart/list/', depart.depart_list,name="depart_list"),
# 添加部门URL
url(r'depart/add/', depart.depart_add,name="depart_add"),
# 编辑部门URL
url(r'depart/edit/(\d+)', depart.depart_edit,name="depart_edit"),
# 删除部门URL
url(r'depart/del/', depart.depart_del,name="depart_del"),
]
views/depart
#!/usr/bin/env python
# coding=utf-8
from django.shortcuts import HttpResponse,render,reverse,redirect
from depart import models
from django import forms
# 展示部门列表
def depart_list(request):
depart_all = models.Depart.objects.all()
return render(request,'depart_list.html',{"depart_all":depart_all})
# 根据数据库字段进行初始化
class DepartForm(forms.ModelForm):
class Meta:
model = models.Depart
fields = "__all__"
def __init__(self,*args,**kwargs):
super().__init__(*args,**kwargs)
for field in self.fields.values():
field.widget.attrs['class'] = 'form-control' # 为每个字段添加样式
# 添加部门
def depart_add(request):
# 对类进行实例化
depart_obj = DepartForm()
if request.method == "POST":
depart_obj = DepartForm(data=request.POST)
if depart_obj.is_valid():
depart_obj.save()
return redirect(reverse('depart_list'))
return render(request,"change.html",{'form_obj':depart_obj})
# 编辑部门
def depart_edit(request,id):
edit_obj = models.Depart.objects.filter(id=id).first()
depart_obj = DepartForm(instance=edit_obj)
if request.method == "POST":
depart_obj = DepartForm(instance=edit_obj,data=request.POST)
if depart_obj.is_valid():
depart_obj.save()
return redirect(reverse('depart_list'))
return render(request,'change.html',{"form_obj":depart_obj})
# 删除部门
def depart_del(request):
del_id = request.GET.get("id")
models.Depart.objects.filter(id=del_id).delete()
return redirect(reverse('depart_list'))
models (数据库)
from django.db import models
# Create your models here.
# 部门
class Depart(models.Model):
id = models.AutoField(primary_key=True)
depart_name = models.CharField(max_length=32,verbose_name="部门名称")
def __str__(self):
return self.depart_name
HTML
部门展示的html
{% extends 'layout.html' %}
{% block content %}
<a href="{% url 'depart_add' %}"><button class="btn btn-info btn-sm">添加</button></a>
<table class="table table-striped table-bordered" style="margin-top:5px">
<thead>
<tr>
<th>编号</th>
<th>部门名称</th>
<th>操作</th>
</tr>
</thead>
<tbody>
{% for depart in depart_all %}
<tr class="del_{{ depart.pk }}">
<td>{{ forloop.counter }}</td>
<td>{{ depart.depart_name }}</td>
<td>
<a href="{% url 'depart_edit' depart.id %}"><button class="btn btn-primary btn-sm">编辑</button></a>
<button del_id ="{{ depart.pk }}" type="button" class="btn btn-warning btn-sm btn-del">删除</button>
</td>
</tr>
{% empty %}
<tr>
<td colspan="3" style="color: red;text-align: center">暂无数据</td>
</tr>
{% endfor %}
</tbody>
</table>
{% endblock %}
{# 使用ajax删除相关数据,添加模态框 #}
{% block js%}
<script>
$(".btn-del").on("click", function () {
var deleteId = $(this).attr("del_id");
layer.confirm('是否删除?',
{
btn: ['容我三思', '是的,确定删除'] //按钮
}, function () {
layer.msg('好的,请慎重',
{time: 2000});
}, function () {
$('.del_' + deleteId).remove();
$.ajax({
url: "/gmrz/depart/del/",
type: "get",
data: {"id": deleteId},
success: function (data) {
layer.msg('删除成功',
{
time: 2000 //2s后自动关闭
});
}
});
});
});
</script>
{% endblock %}
change.html
{% extends 'layout.html' %}
{% block content %}
<form class="form-horizontal" role="form" method="post" style="margin-top: 10px">
{% csrf_token %}
{% for filed in form_obj %}
<div class="form-group">
<label for="{{ filed.id_for_label }}" class="col-sm-2 control-label">{{ filed.label }}</label>
<div class="col-sm-5">
{{ filed }}
</div>
</div>
{% endfor %}
<div class="form-group">
<div class="col-sm-offset-3 col-sm-10">
<button type="submit" class="btn btn-default">提交</button>
</div>
</div>
</form>
{% endblock %}

浙公网安备 33010602011771号