自从学了Django之后,我可真粉了银角大王武沛齐,怎么说呢,还挺感慨,好好学习就对了。

学以致用,学以致用,学了Django中的ORM,怎么能够不写一个小案例呢?

基于Pycharm的Django学习

  • 用户管理需求分析
  • 用户管理
    • 展示用户列表
    • 添加用户
    • 删除用户

那么一起来写一个用户管理的小demo吧!

用户管理需求分析

需求:

  1. 展示用户列表
  2. 添加用户
  3. 删除用户

用户管理

那就一步步来编写吧!

其实写代码就是这样,一步步来分析,先写一个基本的功能,然后再去一点点的完善优化,所以不要怕麻烦奥!

urls.py —— views.py —— html

展示用户列表

def info_list(request):# 获取数据库中所有信息data_list = models.UserInfo.objects.all()# 在后端函数中测试需要传过去的数据 确保传过去的数据正确 然后再移植到前端 并且更改相应的语法规则print(data_list)# 渲染 返回给前端return render(request, "info_list.html", {"data_list": data_list})

展示流程:

  1. 获取数据库数据
  2. 前端测试数据格式和内容
  3. 渲染并且返回页面
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body><h1>用户列表</h1><!--在列表页面添加一个按钮 一点就可以跳转到添加页面--><!--http://127.0.0.1:8000/info/add/ 因为是自家的网站 就可以不用写域名了--><div style="height:50px"><a href="/info/add/">添加用户</a></div><table border="1" style="border-collapse:collapse"><thead><tr><th>ID</th><th>姓名</th><th>密码</th><th>年龄</th><th>操作</th></tr></thead><!--先用静态数据测试--><!--<tbody><tr><td>1</td><td>王晓曼</td><td>123</td><td>20</td></tr></tbody>--><tbody>{% for data in data_list %}<tr><td>{{data.id}}</td><td>{{data.name}}</td><td>{{data.password}}</td><td>{{data.age}}</td><td><a href="/info/delete/?nid={{data.id}}">删除</a></td></tr>{% endfor %}</tbody></table>
</body>
</html>

在编写前端页面的时候,也需要注意,先是使用静态数据演示,然后再换成后端传来的数据,这样也方便测试,因为写代码不是一蹴而就的。

添加用户

def info_add(request):if request.method == "GET":return render(request, "info_add.html")# 如果是POST 获取用户数据name = request.POST.get("user")password = request.POST.get("password")age = request.POST.get("age")# 添加到数据库models.UserInfo.objects.create(name=name, password=password, age=age)return redirect("/info/list")

在测试页面跳转情况时,一定是需要响应的奥,可看前面的三种响应。

如果还在测试功能阶段,可以响应文本,再输入url去指定页面查看。

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body><h1>添加用户</h1><!--action如果不写 那么就是向当前地址发送post请求  这个地方不要瞎写 不然这里的url和函数里的不匹配 那就出错了--><form method="post">{% csrf_token %}<label>用户名:<input type="text" name="user" placeholder="用户名"> </label><label>密码:<input type="password" name="password" placeholder="密码"> </label><label>年龄:<input type="text" name="age" placeholder="年龄"> </label><input type="submit" value="提交"></form>
</body>
</html>



删除用户


我们是假设这样的功能:当用户输入http://127.0.0.1:8000/info/delete/?nid=这样的url时,就在数据库删除用户所输入的对应用户id的信息,并且跳转到用户列表展示页面。

def info_delete(request):nid = request.GET.get("nid")models.UserInfo.objects.filter(id=nid).delete()return redirect("/info/list")

因为要是用户一直去输入url,可能有一点繁琐,所以我们在前端列表中,多增加了一列,这样的话,就可以通过链接来拼接url并且实现跳转。



当然,上述只是为了演示案例,并没有美化页面,后期我们会写一个综合的大项目奥。

基于Pycharm的Django学习 —— 用户管理小demo相关推荐

  1. 基于Pycharm的Django学习 —— 项目实战(Form和ModelForm)

    项目实战 项目开发流程 项目准备工作 项目部门管理 UI设计 depart_list 模板继承 depart_add depart_delete depart_edit 项目用户管理 user_lis ...

  2. webservice24--基于契约优先开发用户管理小功能--实现wsdl

    基于契约优先开发用户管理小功能–实现wsdl 1.编写schema <?xml version="1.0" encoding="UTF-8"?> & ...

  3. Django实现用户管理

    Django实现用户管理 前言 第一节 - 自定义模版和静态文件 1. 自定义模版位置和静态文件 2. 通用静态文件和模版设置 模版设置: 3. 关于访问 /admin 报错的探究 第二节 - 用户登 ...

  4. WebService:跟孔浩学习(契约优先、Schema、WSDL、SOAP、用户管理小系统)

    异构平台之间的交互 XML (DTDàSchema->Stax(XStream).SAX.Dom4J.PULL)    JAXB XStream和Jackson完成Json和java的转化 SO ...

  5. 基于SpringBoot的高校自习室座位管理小程序毕业设计源码191028

    摘 要 21世纪时信息化的时代,几乎任何一个行业都离不开计算机,将计算机运用于学校的各种信息管理也是十分常见的.随着时代发展,越来越多小程序被普遍使用,小程序的便捷,随时随地即可方便使用的特点,使得越 ...

  6. python项目源码 日程管理_基于fullcalendar制作的日程管理小demo

    一.项目地址: 二.项目功能概述: 该项目是基于fullcalendar而制作的日程管理,fullcalendar是一个基于jquery的日历插件,在该项目中,我们可以在日历上编辑我们的日程,并将日程 ...

  7. 基于pycharm的keras学习日志

    pycharm运行keras问题记录 2022\1\28 问题:ImportError: SystemError: <built-in method contains of dict objec ...

  8. webservice25--基于契约优先开发用户管理小功能--异常处理

    1.创建异常类UserException , 此处继承RuntimeException, 注意这是有问题的 package com.chb.service.exception;/*** 首先继承Run ...

  9. Linux学习(四)---用户管理

    文章目录 Linux学习--用户管理 一.基本介绍 二.添加用户 2.1 基本语法 2.2 实际案例 2.3 细节说明 三.给用户指定或者修改密码 四.删除用户 4.1基本语法 4.2 应用案例 五. ...

最新文章

  1. 三星i8150 刷机
  2. 数据结构算法的引言+时间复杂度
  3. java.lang.InstantiationException
  4. 我所理解的Java NIO
  5. 菜鸟学java要多久_菜鸟学java,根本停不下来!
  6. 高仿114la网址导航源码完整最新版
  7. SpringBoot入门篇-HelloWorld案例
  8. 实验七 6 音乐DJ和回响贝斯
  9. php下载安装教程,PHP for Windows安装图文详细教程
  10. python各城市对应的省_python实现城市和省份字典(根据城市判断属于哪个省份)...
  11. jpg格式图片怎样压缩?电脑如何压缩jpg图片?
  12. 计算机c盘用户文件夹改英文,windows10下把中文登录用户文件夹名改成英文名的方法...
  13. 登录实例失败,原因: 连接实例 i-wz972sda3z2cf3u3t9a1 (47.112.162.228:3389) 超时: 10 秒,请检查网络是否可达或者白名单设置
  14. openvino CvCapture_MSMF::initStream Failed to set mediaType (unsupported media type)
  15. 为PDF扫描文件添加书签
  16. [poj 1014]Dividing的DFS解法解读和DP解法
  17. Oracle AWR管理与维护
  18. FX5U和je-C伺服通讯案例和学习资料
  19. Day212.OAuth2、微信二维码登入注册功能、用户登录信息前后端供、讲师列表前后端 -谷粒学院
  20. 法国计划2020起征收数字税

热门文章

  1. js获取网页的协议+域名
  2. HTML给div设置百分比高度无效的解决方式 - 库塔姆斯 - CSDN博客
  3. npm 清缓存,亲测有效
  4. 三菱四节传送带梯形图_四节传送带PLC控制
  5. 生成DOCKER图片镜像
  6. linux c 指针和内存分配内存,Linux C语言指针与内存学习笔记
  7. Python中少有人回答的问题
  8. VS Code 设置代码自动保存
  9. 事件、留存、漏斗分析到底是个啥?
  10. BeautifulPrompt:PAI推出自研Prompt美化器,赋能AIGC一键出美图