如何实现数据的编辑和删除?
效果如图:
步骤一:urls.py里配置:
from django.conf.urls import url
from django.contrib import admin
from login import views
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r"^login/",views.login),
url(r"^register/",views.register),
#用户展示页
url(r"^home/",views.home),
#删除功能
url(r"^delete_user/",views.del_user),
#编辑功能
url(r"^edit_user/",views.edit_user),
]
步骤2:配置网页:
重点是编辑和删除:
编辑:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script src="https://cdn.bootcss.com/jquery/3.4.1/jquery.min.js"></script>
{% load static %}
<link rel="stylesheet" href="{% static 'bootstrap-3.3.7-dist/css/bootstrap.min.css' %}">
<script src="{% static 'bootstrap-3.3.7-dist/js/bootstrap.min.js' %}"></script>
</head>
<body>
<div class="container">
<div class="row">
<div class="col-md-8 col-md-offset-2">
<h2 class="text-center">编辑</h2>
<form action="" method="GET">
<p>username:<input type="text" name="username" class="form-control" value="{{ edit_obj.name }}"></p>
<p>password:<input type="text" name="password" class="form-control" value="{{ edit_obj.password }}"></p>
<input type="submit" class="btn btn-warning pull-right">
</form>
</div>
</div>
</div>
</body>
</html>
删除跟家目录home.html有关:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script src="https://cdn.bootcss.com/jquery/3.4.1/jquery.min.js"></script>
{% load static %}
<link rel="stylesheet" href="{% static 'bootstrap-3.3.7-dist/css/bootstrap.min.css' %}">
<script src="{% static 'bootstrap-3.3.7-dist/js/bootstrap.min.js' %}"></script>
</head>
<body>
<div class="container">
<div class="row">
<div class="col-md-8 col-md-offset-2">
<h1 class="text-center">数据展示</h1>
<table class="table table-striped table-hover">
<thead>
<tr>
<th>id</th>
<th>name</th>
<th>password</th>
<th>operation</th>
</tr>
</thead>
<tbody>
{% for user_obj in res %} <!--[user_obj1,user_obj2...]-->
<tr>
<td>{{ user_obj.id }}</td>
<td>{{ user_obj.name }}</td>
<td>{{ user_obj.password }}</td>
<td>
<a href="/edit_user/?edit_id={{ user_obj.id }}" class="btn btn-primary btn-xs">编辑</a>
<a href="/delete_user/?delete_id={{ user_obj.id }}" class="btn btn-danger btn-xs">删除</a>
</td>
</tr>
{% endfor %}
</tbody>
</table>
</div>
</div>
</div>
</body>
</html>
步骤3:视图函数配置,在views.py里配置:
def register(request):
# return HttpResponse("世上无难事,只要肯登攀")
if request.method == "POST":
username = request.POST.get("username")
password = request.POST.get("password")
user_obj = models.User(name = username,password = password)
user_obj.save()
return render(request,"register.html")
def home(request):
user_queryset = models.User.objects.all()
return render(request,"home.html",{"res":user_queryset})
def del_user(request):
delete_id = request.GET.get("delete_id")
models.User.objects.filter(id = delete_id).delete()
return redirect("/home/")
def edit_user(request):
edit_id = request.GET.get("edit_id")
if request.method == "POST":
username = request.POST.get("username")
password = request.POST.get("password")
edit_obj = models.User.objects.filter(id = edit_id).first()
edit_obj.username = username
edit_obj.password = password
edit_obj.save()
return redirect("/home/")
edit_obj = models.User.objects.filter(id = edit_id).first()
return render(request,"edit_user.html",{"edit_obj":edit_obj})