Django框架:后台管理系统 数据渲染与增删改查

用于自己记录学习

以数据表:用户信息 作为示范

一.渲染用户列表页面

1.后端视图

def user_list(request):
    user_list=User.objects.all()
    return render(request,'user_list.html',{"user_obj_list":user_list})

获取数据表中的所有用户信息,之后将获取到的用户对象列表传递给模板,并使用render函数渲染指定的HTML模板文件

2.对应的前端部分代码

{% for user_obj in user_obj_list %}
    <tr>
        <td>{{ forloop.counter }}</td>

    <td>{{ user_obj.id }}</td>
    <td>{{ user_obj.real_name }}</td>
    <td>{{ user_obj.username }}</td>
    <td>{{ user_obj.mobile }}</td>
    <td>{{ user_obj.password }}</td>
    <td>
        <a href="/edit_user/?id={{user_obj.id}}">修改</a>
        <a href="/delete_user/?id={{user_obj.id}}">删除</a>
     </td>
    </tr>

{% for user_obj in user_obj_list %}用于遍历user_obj_list中的每一个元素

{{ forloop.counter }}是for循环计数器,用作序号

3.同时要记得写路由

urlpatterns = [
    path('user_list/', views.user_list)]

二.添加用户信息

1.后端视图代码

def add_user(request):
    if request.method == "POST":

        username = request.POST.get('username')
        password = request.POST.get('password')
        mobile = request.POST.get('mobile')
        real_name = request.POST.get('real_name')


        User.objects.create(username=username,password=password,mobile=mobile,real_name=real_name)
        return redirect('/user_list/')
    return render(request, "add_user.html")

接收前端传过来的信息,并在数据库中进行创建

2.前端部分代码

<form action="" method="post">

    <p>
        用户名<input type="text" name="username">
    </p>
    <p>
        密码<input type="text" name="password">
    </p>
     <p>
        手机号<input type="text" name="mobile">
    </p>
     <p>
        真名<input type="text" name="real_name">
    </p>

    <p>
        <button type="submit" class="btn">提交</button>
    </p>
</form>

3.记得写路由

urlpatterns = [
    path('add_user/', views.add_user)]

三.编辑用户信息

def edit_user(request):
    if request.method=='POST':
        id=request.POST.get('id')
        username=request.POST.get('username')
        password = request.POST.get('password')
        mobile = request.POST.get('mobile')
        real_name = request.POST.get('real_name')


        user_obj = User.objects.get(id=id)

        user_obj.username=username
        user_obj.password=password
        user_obj.mobile=mobile
        user_obj.real_name=real_name

        user_obj.save()
        return redirect('/user_list/')

    else:
        id=request.GET.get('id')
        user_obj=User.objects.get(id=id)
        user_obj_list=User.objects.all()
        return render(request, 'edit_user.html', {'user_obj':user_obj,"user_obj_list": user_obj_list})

对应前端代码

<form action="" method="post">
    <p>
        <input type="hidden" name="id" value="{{ user_obj.id }}">
    </p>
    <p>
        用户名:<input type="text" name="username" value="{{ user_obj.username }}">
    </p>
    <p>
        密码:<input type="text" name="password" value="{{ user_obj.password }}">
    </p>
<p>
        手机号:<input type="text" name="mobile" value="{{ user_obj.mobile }}">
    </p>
<p>
        真名:<input type="text" name="real_name" value="{{ user_obj.real_name  }}">
    </p>


<p>
        <button type="submit" class="btn">提交</button>
    </p>

记得写视图

四.删除用户信息

def delete_user(request):
    id=request.GET.get('id')
    User.objects.filter(id=id).delete()
    return redirect("/user_list")

五.查找用户信息

def search_user(request):
    if request.method == 'POST':
        name = request.POST.get('search_user_name')
        users_search_list = User.objects.filter(real_name=name).all()
        return render(request, 'search_user_name.html', {'user_search_list': users_search_list})
    else:
        return render(request, 'search_user_name.html', {})

对应部分前端代码

<form action="{% url 'search_user' %}" method="post" id="search_user">
            <div class="form" style="display: flex;">
                            <input type="text" class="form-control" placeholder="输入用户姓名" name="search_user_name">
                            <span class="input-group-btn">
                                <button class="btn btn-default" type="submit" id="submit">搜索</button>
                            </span>
            </div></form>

显示部分

{% for user_obj in user_search_list %}
    <tr>
        <td>{{ forloop.counter }}</td>

    <td>{{ user_obj.id }}</td>
        <td>{{ user_obj.real_name }}</td>
    <td>{{ user_obj.username }}</td>
    <td>{{ user_obj.mobile }}</td>
    <td>{{ user_obj.password }}</td>

        <td>
            <a href="/edit_user/?id={{user_obj.id}}">修改</a>
            <a href="/delete_user/?id={{user_obj.id}}">删除</a>
        </td>
    </tr>
    {% endfor %}

记得要写视图

urlpatterns = [

    path('user_list/',views.user_list),
    path('add_user/',views.add_user),
    path('edit_user/',views.edit_user),
    path('search_user/',views.search_user, name='search_user'),

                ]

  • 7
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值