首页 > 数据库 >Django教程(004):基于orm操作数据库的用户管理实现

Django教程(004):基于orm操作数据库的用户管理实现

时间:2024-07-23 23:28:43浏览次数:18  
标签:request list 用户 Django 添加 user orm 004 页面

文章目录

1、功能需求

  1. 展示用户列表

2、展示用户列表

2.1 添加url

urls.py中添加如下代码

在这里插入图片描述

path("user/list", views.user_list),

2.2 创建视图

views.py中获取用户数据,并返回到页面user_list.html

在这里插入图片描述

# 获取用户列表信息
def user_list(request):
    # 1、获取数据中所有的用户信息
    data_list = UserInfo.objects.all()
    print(data_list)
    return render(request, 'user_list.html', {'data_list': data_list})

2.3 编写html页面

创建user_list.html页面,并展示数据

在这里插入图片描述

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <link rel="stylesheet" href="/static/plugins/bootstrap-3.4.1-dist/css/bootstrap.css">
    <script src="/static/js/jquery.min.js"></script>
    <script src="/static/plugins/bootstrap-3.4.1-dist/js/bootstrap.js"></script>
</head>
<body>
<div>
    <div class="panel panel-primary">
        <div class="panel-heading">用户列表</div>
        <div class="panel-body">
            <table class="table table-bordered" style="width: 70%">
                <thead>
                    <tr>
                        <th>ID</th>
                        <th>姓名</th>
                        <th>密码</th>
                        <th>年龄</th>
                    </tr>
                </thead>
                <tbody>
                {% for user in data_list %}
                    <tr>
                        <td>{{user.id}}</td>
                        <td>{{user.name}}</td>
                        <td>{{user.password}}</td>
                        <td>{{user.age}}</td>
                    </tr>
                {% endfor %}
                </tbody>
            </table>
        </div>
    </div>
</div>
</body>
</html>

1.4 页面实现效果

在这里插入图片描述

3、添加用户

  • url
  • 函数
    • GET请求——>看到添加页面
    • 输入内容
    • POST请求,提交——>写入到数据库

3.1 添加url

path("user/add", views.user_add),

3.2 跳转到添加页面

def user_add(request):
    if request.method == 'GET':
        return render(request, 'user_add.html')

3.3 编写添加用户页面

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>添加用户</title>
    <link rel="stylesheet" href="/static/plugins/bootstrap-3.4.1-dist/css/bootstrap.css">
    <script src="/static/js/jquery.min.js"></script>
    <script src="/static/plugins/bootstrap-3.4.1-dist/js/bootstrap.js"></script>
</head>
<body>
<h1>添加用户</h1>
<div class="panel panel-primary">
    <div class="panel-heading">用户列表</div>

    <div class="panel-body">
        <form method="post" action="/user/add">
            {% csrf_token %}
            <input type="text" name="name" placeholder="用户名">
            <input type="text" name="password" placeholder="密码">
            <input type="text" name="age" placeholder="年龄">
            <input type="submit" value="添加">
        </form>
    </div>
</div>

</body>
</html>

3.4 添加用户

user_add函数中补充代码,使用ORM进行数据库操作

def user_add(request):
    if request.method == 'GET':
        return render(request, 'user_add.html')
    # 获取用户提交的数据
    name = request.POST.get('name')
    password = request.POST.get('password')
    age = request.POST.get('age')
    # ORM操作数据库
    UserInfo.objects.create(name=name, password=password, age=age)
    # 跳转到用户列表页面
    return redirect("/user/list")

3.5 实现效果

在这里插入图片描述

在这里插入图片描述

3.6 页面优化

在用户列表user_list页面添加添加用户按钮,点击之后跳转到添加用户页面

<a href="/user/add">添加用户</a>

在这里插入图片描述

4、删除用户

  • url
  • 函数

4.1 添加删除用户按钮

在用户列表页面添加删除用户链接

在这里插入图片描述

<th>操作</th>

<td><a href="/user/delete?nid={{ user.id }}">删除</a></td>

在这里插入图片描述

4.2 添加删除url

# 删除用户
path("user/delete", views.user_delete),

4.3 删除用户

使用ORM操作数据库,删除用户

def user_delete(request):
    nid = request.GET.get('nid')
    UserInfo.objects.filter(id=nid).delete()
    return redirect("/user/list")

4.4 实现效果

在这里插入图片描述

5、完整代码链接

链接:https://pan.baidu.com/s/13yuD63aqqarkQHWx4RMpXw?pwd=qabn 
提取码:qabn 
--来自百度网盘超级会员V4的分享

标签:request,list,用户,Django,添加,user,orm,004,页面
From: https://blog.csdn.net/WwLK123/article/details/140599051

相关文章

  • 在Django REST framework (DRF) 中,`request.query_params` 和 `request.data` 区别
    在DjangoRESTframework(DRF)中,request.query_params和request.data都是用来获取请求中的数据,但是它们之间有一些关键的区别:request.query_params这个属性用于获取URL查询字符串中的参数。例如,在URLhttp://example.com/api/?param1=value1&param2=value2中,request.quer......
  • JCR一区级 | Matlab实现GA-Transformer-LSTM多变量回归预测
    JCR一区级|Matlab实现GA-Transformer-LSTM多变量回归预测目录JCR一区级|Matlab实现GA-Transformer-LSTM多变量回归预测效果一览基本介绍程序设计参考资料效果一览基本介绍1.【JCR一区级】Matlab实现GA-Transformer-LSTM多变量回归预测,遗传优化算法(GA)优......
  • 利用Swin-Unet(Swin Transformer Unet)实现对文档图片里表格结构的识别
    项目:https://github.com/jiangnanboy/table_structure_recognition#利用Swin-Unet(SwinTransformerUnet)实现对文档图片里表格结构的识别##实现功能-[x]识别表格中的线条-[]结果转为excel##下载weights模型文件见github将模型文件放到model目录下##训练(te......
  • Python贝叶斯、transformer自注意力机制self-attention个性化推荐模型预测课程平台学
    全文链接:https://tecdat.cn/?p=37090原文出处:拓端数据部落公众号 分析师:KungFu近年来,在线课程凭借便捷的网络变得越来越流行。为了有更好的用户体验,在线课程平台想要给用户推荐他们所感兴趣的课程,以便增大点击率和用户黏性。解决方案任务/目标根据学生所选的历史课程,预测出......
  • Layer Normalization
    LayerNormalization#导入包importtorchfromtorchimportnnimporttorch.nn.functionalasfimportmathfrommathimportsqrtclassLayerNormal(nn.Module):def__init__(self,d_moule,eps=1e-12):"""d_moule:数据维度......
  • Transformer-Embedding
    导包#导入包importtorchfromtorchimportnnimporttorch.nn.functionalasfimportmathTokenEmbedding#首先定义tokenembaddingfromtorchimportTensor"""将输入词汇表的索引转换成指定维度的Embedding"""classTokenEmbedding(nn.Embedding......
  • 使用ProForm的useRef()对象的注意事项
    1、我创建了useRef对象,并在ProForm中使用 2、但是我在loadData方法中使用formRef对象时报错。显示formRef.current得到的对象为空 3、但是loadData是在渲染完成后加载的,为什么formRef.current会为空。 问题原因:原来是我在loadData之前,将loading值设为false,这时会重......
  • Winform小工具:.txt档转excel档
    privatevoidbt_txt_to_excel_Click(objectsender,EventArgse){FolderBrowserDialogfolderDialog=newFolderBrowserDialog();if(folderDialog.ShowDialog()==DialogResult.OK){string......
  • Django视图与URLs路由详解
            在DjangoWeb框架中,视图(Views)和URLs路由(URLrouting)是Web应用开发的核心概念。它们共同负责将用户的请求映射到相应的Python函数,并返回适当的响应。本篇博客将深入探讨Django的视图和URLs路由系统,提供实际的代码示例和操作指导,确保读者能够具体而实际地了解如......
  • django学习入门系列之第四点《案例 走马灯(让字幕滚动)》
    文章目录往期回顾<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><title>Title</title></head><body><spanid="txt">欢迎中国联通领导过来指导</span><scri......