如何实现数据的编辑和删除?

如何实现数据的编辑和删除?

效果如图:
在这里插入图片描述
在这里插入图片描述
步骤一: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})
发布了478 篇原创文章 · 获赞 673 · 访问量 19万+

猜你喜欢

转载自blog.csdn.net/YJG7D314/article/details/103837241