一.准备模板文件,创建模板目录
1.在项目目录下创建templates模板目录
2.进入模板目录templates,在模板目录下创建应用名mytest的目录
3.进行mytest目录,在里面创建一个users目录
4.进入users目录,在里面创建文件:index.html,add.html,edit.html,info.html
编辑:add.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>用户添加页面</title>
</head>
<body>
<form action="{% url 'insertusers' %}" method="post">
<! -- csrf 防跨站伪造攻击 >
{% csrf_token %}
用户名:<input type="text" name="name"><br>
年龄:<input type="text" name="age"><br>
手机号:<input type="text" name="phone"><br>
<button>添加用户</button>
</form>
</body>
</html>
编辑:info.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>信息</title>
</head>
<body>
{{ info }}
<br>
<script type="text/javascript">
setTimeout(function (){
location.href={% url u %}
},2000)
</script>
</body>
</html>
编辑:edit.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>用户修改页面</title>
</head>
<body>
<form action="{% url 'updateusers' %}" method="post">
{% csrf_token %}
用户名:<input type="text" name="name" value="{{ userinfo.name }}"><br>
年龄:<input type="text" name="age" value="{{ userinfo.age }}"><br>
手机号:<input type="text" name="phone" value="{{ userinfo.phone }}"><br>
<! --隐藏域 -->
<input type="hidden" name="uid" value="{{ userinfo.id }}">
<button>修改用户</button>
</form>
</body>
</html>
编译:index.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>用户列表</title>
</head>
<body>
<a href="{% url 'addusers' %}">添加用户</a>
<table border="1" width="500">
<tr>
<td>ID</td>
<td>用户名</td>
<td>年龄</td>
<td>手机号</td>
<td>操作</td>
</tr>
{% for v in UserList %}
<tr>
<td>{{ v.id }}</td>
<td>{{ v.name }}</td>
<td>{{ v.age }}</td>
<td>{{ v.phone }}</td>
<td>
<a href="{% url 'delusers' v.id %}">删除</a>
<a href="{% url 'editusers' v.id %}">修改</a>
</td>
</tr>
{% endfor %}
</table>
</body>
</html>
5.设置模板目录信息:编辑web/webapp/settings.py 文件
EMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [BASE_DIR / 'templates'],#此处添加
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
],
},
},
]
二、配置路由信息:
打开:web/webapp/urls.py路由文件,加入六条路由配置信息:
from django.urls import path,re_path
from .import views
urlpatterns = [
path('', views.index,name="index"),
path('users',views.indexUsers,name="users"),#浏览用户信息
path('users/add',views.addUsers,name="addusers"),#加载添加用户信息表单
path('users/insert',views.insertUsers,name="insertusers"),#执行用户信息添加
re_path(r'users/(?P<uid>[0-9]+)/del$',views.delUsers,name="delusers"),#执行用户信息删除
re_path(r'users/(?P<uid>[0-9]+)/edit$',views.editUsers,name="editusers"),#加载用户信息编辑
path('users/update',views.updateUsers,name="updateusers"),#执行用户信息编辑
]
三、编写视图文件:web/webapp/views.py
from django.shortcuts import render,redirect
from django.urls import reverse
from django.http import HttpResponse
# Create your views here.
from mytest.models import Users
def index(request):
try:
list = Users.objects.all()
context = {"UserList": list}
return render(request, "mytest/users/index.html", context)
except:
return HttpResponse("数据库里没有查询到数据")
#浏览用户信息
def indexUsers(request):
#执行数据查询,并放置到模板中
list = Users.objects.all()
context = {"UserList":list}
return render(request,"mytest/users/index.html",context)
#加载添加信息表单
def addUsers(request):
return render(request,"mytest/users/add.html")
#执行信息添加操作
def insertUsers(request):
try:
ob=Users()
ob.name=request.POST['name']
ob.age=request.POST['age']
ob.phone=request.POST['phone']
ob.save()
context = {'info':'添加成功!','u':'index'}
except:
context={'info':'添加失败!','u':'index'}
return render(request,"mytest/users/info.html",context)
#重定向,到index函数中
# return redirect (reverse('users'))
#删除用户信息
def delUsers(request,uid):
try:
ob = Users.objects.get(id=uid)
ob.delete()
context={"info":'删除成功','u':'index'}
except:
context = {"info":"删除失败",'u':'index'}
return render(request,"mytest/users/info.html",context)
#编辑用户信息
def editUsers(request,uid):
try:
ob = Users.objects.get(id=uid)
context ={'userinfo':ob}
return render(request,"mytest/users/edit.html",context)
except:
context ={'info':'库里没有找到需要修改的信息'}
return render(request,"mytest/users/info.html",context)
#执行用户信息编辑
def updateUsers(request):
try:
ob=Users.objects.get(id=request.POST['uid'])
ob.name=request.POST['name']
ob.age=request.POST['age']
ob.phone=request.POST['phone']
ob.save()
context = {"info":'修改成功','u':'index'}
except:
context={'info':"修改失败",'u':'index'}
return render(request,"mytest/users/info.html",context)
四、效果: