Django框架基于ORM实现用户增加删除修改以及查看详情页信息

鳄鱼君

发表文章数:525

Vieu四代商业主题

高扩展、安全、稳定、响应式布局多功能模板。

¥69 现在购买
首页 » Python教程 » Django框架基于ORM实现用户增加删除修改以及查看详情页信息

Django框架基于ORM实现用户登录中,我们已经实现了用户查看详情信息,那么在这篇文章我们将来实现用户增加修改功能。

添加用户

我们需要在user_info.html页面添加一个表单用于收集用户的数据,然后在user_info函数中获取并添加到数据库中。user_info.html页面:

<div class="heaedr-menu" style="height: 48px;background-color: aliceblue;color: red">
    <strong align="center">欢迎回来!</strong>
</div>
<div class="left-menu" style="position: absolute;top: 48px;bottom: 0;left: 0;width: 200px;background-color: #191616;">
    <ul>
        <li><a href="/myapp1/user_info/" ><strong>用户管理</strong></a></li>
        <li><a href="/myapp1/user_group/" ><strong>用户组管理</strong></a></li>
    </ul>
</div>
<div class="content" style="position: absolute;top: 48px;left: 210px;bottom: 0;right: 0;overflow: auto;">
    <strong>添加用户</strong>
    <form action="/myapp1/user_info/" method="post"> {{# 提交到当前页面#}}
        <input type="text" name="user">
        <input type="text" name="pwd">
        <input type="submit" value="添加">
    </form>
    <strong>用户列表</strong>
    <ul>
        {% for user in user_list %}
        <li><a href="/myapp1/userdetail-{{ user.id }}">{{ user.username }}</a></li>
        {% endfor %}
    </ul>
</div>

user_info函数

from django.shortcuts import render,redirect
from myapp1 import models
def user_info(request):
    if request.method=='GET':
        user_list=models.UserInfo.objects.all() #QuerySet类型 [obj,obj,...]
        #print(user_list.query) #查看当前的语句
        return render(request,'user_info.html',{'user_list':user_list})
    elif request.method=='POST':
        u=request.POST.get('user')
        p=request.POST.get('pwd')
        models.UserInfo.objects.create(username=u,password=p) #增加数据

        return redirect('/myapp1/user_info/')
        # #获取所有的数据 第二种方式
        # user_list = models.UserInfo.objects.all()  # QuerySet类型 [obj,obj,...]
        # # print(user_list.query) #查看当前的语句
        # return render(request, 'user_info.html', {'user_list': user_list})

删除用户

删除用户需要创建一个userdel.htmluser_del函数处理。

def user_del(request,pid):
    models.UserInfo.objects.filter(id=pid).delete()
    return redirect('/myapp1/user_info/')

删除需要借助userdel.html页面来进行,不做展示,直接修改user_info.html页面就可以:

<h3>用户列表</h3>
    <ul>
        {% for user in user_list %}
        <li><a href="/myapp1/userdetail-{{ user.id }}">{{ user.username }}</a>
            |<a href="/myapp1/userdel-{{ user.id }}"><strong>删除</strong></a></li>
        {% endfor %}
    </ul>

修改用户

这里还需要借助页面user_edit.html来做修改操作,新建user_edit.html页面:

<div class="heaedr-menu" style="height: 48px;background-color: aliceblue;color: red">
    <strong align="center">欢迎回来!</strong>
</div>
<div class="left-menu" style="position: absolute;top: 48px;bottom: 0;left: 0;width: 200px;background-color: #191616;">
    <ul>
        <li><a href="/myapp1/user_info/" ><strong>用户管理</strong></a></li>
        <li><a href="/myapp1/user_group/" ><strong>用户组管理</strong></a></li>
    </ul>
</div>
<div class="content" style="position: absolute;top: 48px;left: 210px;bottom: 0;right: 0;overflow: auto;">
    <strong>编辑用户</strong>
    <form action="/myapp1/useredit-{{ obj.id }}/" method="post">
        <input type="text" name="username"  value="{{ obj.username }}">
        <input type="text" name="password"  value="{{ obj.password }}">
        <input type="submit" value="提交">
    </form>
</div>

配置URL路由规则,这里不贴代码。app下的views.py中的user_edit函数:

def user_edit(request,pid):
    if request.method=='GET':
        #如果浏览器访问编辑页面,显示当前id的信息
        obj=models.UserInfo.objects.filter(id=pid).first()
        return render(request,'user_edit.html',{'obj':obj})
    elif request.method=='POST':
        u=request.POST.get('username')
        p=request.POST.get('password')
        models.UserInfo.objects.filter(id=pid).update(username=u,password=p)
        return redirect('/myapp1/user_info/')

需要修改user_info.html页面:

 <h3>用户列表</h3>
    <ul>
        {% for user in user_list %}
        <li><a href="/myapp1/userdetail-{{ user.id }}">{{ user.username }}</a>
            |<a href="/myapp1/userdel-{{ user.id }}"><strong>删除</strong></a>
            | <a href="/myapp1/useredit-{{ user.id }}"><strong>编辑</strong></a> </li>
        {% endfor %}
    </ul>

注意form表单中action属性的URL路径,需要跟URL路由规则一直,/ 丢失会找不到页面

这样就简单的实现了用户管理页面,可以添加用户,删除用户,修改用户,虽然方式比较LOW,但是主要是为了练习一下ORM数据库操作。理清各个文件页面之间的关系,页面太多容易混乱!

Django框架基于ORM实现用户增加删除修改以及查看详情页信息

由于鳄鱼君不会CSS所以做了一个非常难看的用户管理页面,按钮的点击也是借助于html页面,如果会js的话可以更加纽币的,主要是学习一下方法和思路,后期可进行CSS修改,完全看个人发挥!

未经允许不得转载:作者:鳄鱼君, 转载或复制请以 超链接形式 并注明出处 鳄鱼君
原文地址:《Django框架基于ORM实现用户增加删除修改以及查看详情页信息》 发布于2020-04-13

分享到:
赞(0) 赏杯咖啡

评论 抢沙发

4 + 1 =


文章对你有帮助可赏作者一杯咖啡

支付宝扫一扫打赏

微信扫一扫打赏

Vieu4.6主题
专业打造轻量级个人企业风格博客主题!专注于前端开发,全站响应式布局自适应模板。
切换注册

登录

忘记密码 ?

您也可以使用第三方帐号快捷登录

Q Q 登 录
微 博 登 录
切换登录

注册