django学习-12.访问不同url/接口地址实现对指定数据的增删改查功能
1.前言
通过前面博客【django学习-10.django连接mysql数据库和创建数据表】里的操作,我们已经成功在数据库【hongjingsheng_project】里创建了一张数据表【hello_person】。
接着,我们通过完整的前后端交互,来展示django框架如何通过相关操作来实现对指定的一个数据表【hello_person】进行数据的新增/编辑/查询/删除这四种基本操作。
细节:
①.为了单独验证对数据表【hello_person】进行数据的新增/编辑/查询/删除这四种基本操作,我们可以在项目绝对路径【helloworld/hello/】里新增一个【personViews.py】,这个【personViews.py】存放针对数据表【hello_person】相关操作(比如新增数据/修改数据/查询数据/删除数据等操作)的视图函数。
②.问题:为什么要新增一个【personViews.py】?
答案:因为为了跟项目绝对路径【helloworld/hello/views.py】里已存在的所有视图函数分开存放,方便后续维护代码的改动。(实际开发过程中也基本默认是按照一张数据表A来单独创建一个py文件来存放这张数据表A相关操作的视图函数。)
2.访问不同url/接口地址实现对指定数据的增删改查功能
2.1.首先, 对数据表【hello_person】新增一条数据的完整操作流程进行记录。
2.1.1.第一步:我们在项目绝对路径【helloworld/hello/personViews.py】里新增一个函数名为【create_person】的视图函数/接口,具体代码内容如下。
细节:
①.一个视图函数就是一个接口,只是每个人的称呼不一样。

# coding:utf-8
'''
@file: personDB.py
@author: 洪景盛
@ide: PyCharm
@createTime: 2021年01月20日 09点40分
@contactInformation: 727803257@qq.com
''' # 请从这行开始编写脚本 from django.shortcuts import render
from django.http import HttpResponse,Http404
from .models import Person # 该接口/视图函数的作用:在person表新增一条数据。
def create_person(request): import random
random_name = "洪景盛"+str(random.randint(1,999999999))
# print(random_name)
random_age = random.randint(1,99)
person = Person(name = random_name, age = random_age)
person.save()
return HttpResponse("<p>在person表成功新增了一条数据!这条数据的name值是:%s;这条数据的age值是:%s;</p>"%(random_name,random_age))
细节:
①.django框架的MTV模型内容和具体流程,可以查看该菜鸟教程地址:https://www.runoob.com/django/django-intro.html

2.1.2.第二步:我们在项目绝对路径【helloworld/helloworld/urls.py】里新增一个值为【url(r"^create_person/$",personViews.create_person)】的url匹配规则,具体代码内容如下。

2.1.3.第三步:启动django项目【helloworld】的服务。

2.1.4.第四步:在任一浏览器上,输入地址【http://127.0.0.1:8000/create_person/】后,查看打开的页面的数据展示。

2.2.接着, 对数据表【hello_person】修改一条数据的完整操作流程进行记录。
2.2.1.第一步:我们在项目绝对路径【helloworld/hello/personViews.py】里新增一个函数名为【update_person】的视图函数/接口,具体代码内容如下。

# 该视图函数的作用:按照不同条件,来修改person表指定的数据。
def update_person(request):
# 1.修改其中一个id=1的name字段的值,再save,相当于sql语法中的update操作;
test1 = Person.objects.get(id=1)
newName = "这是被修改的新名字" + str(random.randint(1,999999999))
test1.name = newName
test1.save() # 2.跟1相比,2的做法就是直接用一行代码来实现同样的修改功能;
# Person.objects.filter(id = 1).update(name = "这是被修改的新名字" + str(random.randint(1,999999999))) # 修改所有数据的表字段nane的值为“统一名字”
# Person.objects.all().update(name = "统一名字") return HttpResponse("修改数据成功!id为1的这条数据的表字段name的最新值为:%s"%newName)
2.2.2.第二步:我们在项目绝对路径【helloworld/helloworld/urls.py】里新增一个值为【url(r"^update_person_data/$",personViews.updata_person)】的url匹配规则,具体代码内容如下。

2.2.3.第三步:在任一浏览器上,输入地址【http://127.0.0.1:8000/update_person_data/】后,查看打开的页面的数据展示。

2.3.接着, 对数据表【hello_person】获取数据的完整操作流程进行记录。
2.3.1.第一步:我们在项目绝对路径【helloworld/hello/personViews.py】里新增一个函数名为【search_person】的视图函数/接口,具体代码内容如下。

# 该视图函数的作用:按照不同条件,来获取person表指定的数据。
def search_person(request): # 初始化
response = ""
# 通过objects这个模型管理器的all()获得所有数据行,相当于SQL中的SELECT * FROM
list = Person.objects.all()
# 通过for循环,输出所有数据
for i in list:
response = response + i.name + ' '
return HttpResponse(response)
2.3.2.第二步:我们在项目绝对路径【helloworld/helloworld/urls.py】里新增一个值为【url(r"^search_person_data/$",personViews.search_person)】的url匹配规则,具体代码内容如下。

2.3.3.第三步:在任一浏览器上,输入地址【http://127.0.0.1:8000/search_person_data/】后,查看打开的页面的数据展示。

2.4.接着, 对数据表【hello_person】删除数据的完整操作流程进行记录。
2.4.1.第一步:我们在项目绝对路径【helloworld/hello/personViews.py】里新增一个函数名为【delete_person】的视图函数/接口,具体代码内容如下。

2.4.2.第二步:我们在项目绝对路径【helloworld/helloworld/urls.py】里新增一个值为【url(r"^delete_person_data/$",personViews.delete_person)】的url匹配规则,具体代码内容如下。

2.4.3.第三步:在任一浏览器上,输入地址【http://127.0.0.1:8000/delete_person_data/】后,查看打开的页面的数据展示。

3.其他相关知识点学习链接
①.运用模型层知识点,对数据库简单的增删改查操作,可以参考菜鸟教程的这篇文章:https://www.runoob.com/django/django-model.html
②.对django框架的Model模型层的非官方的详细解释(非官方人员写的内容也都是基于官方文档来进行解读和编写,适合刚入门的我们学习),可以参考这篇文章:https://www.w3cschool.cn/django/django-model.html
③.django框架的Model模型层的详细解释的官方文档(任何知识点都能在官方文档找到,后期进行开发时遇到不懂的知识点可以查找官方文档相关知识点,官方文档可以理解为就是操作手册),可以参考这篇官方文档:https://docs.djangoproject.com/en/3.0/topics/db/models/
django学习-12.访问不同url/接口地址实现对指定数据的增删改查功能的更多相关文章
- Mybatis学习总结(二)—使用接口实现数据的增删改查
在这一篇中,让我们使用接口来实现一个用户数据的增删改查. 完成后的项目结构如下图所示: 在这里,person代表了一个用户的实体类.在该类中,描述了相关的信息,包括id.name.age.id_num ...
- Django框架之第二篇--app注册、静态文件配置、form表单提交、pycharm连接数据库、django使用mysql数据库、表字段的增删改查、表数据的增删改查
本节知识点大致为:静态文件配置.form表单提交数据后端如何获取.request方法.pycharm连接数据库,django使用mysql数据库.表字段的增删改查.表数据的增删改查 一.创建app,创 ...
- Django 06 Django模型基础1(ORM简介、数据库连接配置、模型的创建与映射、数据的增删改查)
Django 06 Django模型基础1(ORM简介.数据库连接配置.模型的创建与映射.数据的增删改查) 一.ORM系统 #django模型映射关系 #模型类-----数据表 #类属性-----表字 ...
- Django——6 模型基础ORM 数据库连接配置 模型的创建与映射 数据的增删改查
Django Django的ORM简介 数据库连接配置 模型的创建与映射 数据库的增删改查 增数据 查数据及补充 改数据 删数据 Django的ORM系统分析 ORM概念:对象关系映射(Objec ...
- ES6学习笔记(三):教你用js面向对象思维来实现 tab栏增删改查功能
前两篇文章主要介绍了类和对象.类的继承,如果想了解更多理论请查阅<ES6学习笔记(一):轻松搞懂面向对象编程.类和对象>.<ES6学习笔记(二):教你玩转类的继承和类的对象>, ...
- Django之数据表增删改查
Django数据增删改查: 上课代码 from django.shortcuts import render,HttpResponse # Create your views here. from a ...
- Mysql学习笔记(三)对表数据的增删改查。
正文内容. 这一部分是最简单的,也是最麻烦的.简单是因为其实只包括增删该插四个部分.大体上看,增加数据.删除数据.修改数据.查询数据都不麻烦啊,我们日常都是常用的.这个谁不会呢?以前在培训机构学mys ...
- 【java学习】spring mvc 公共dao的实现,定义基本的增删改查
接口类: package com.blog.db.dao; import com.blog.util.Pagination; import java.util.List; public interfa ...
- Mybatis学习(3)实现数据的增删改查
前面已经讲到用接口的方式编程.这种方式,要注意的一个地方就是.在User.xml 的配置文件中,mapper namespace="com.yihaomen.mybatis.inter.I ...
随机推荐
- Docker+Prometheus+Alertmanager+Webhook钉钉告警
Docker+Prometheus+Alertmanager+Webhook钉钉告警 1.环境部署 1.1 二进制部署 1.2 docker部署 1.2.1 webhook 1.2.2 alertma ...
- 802.1X
1.简介 IEEE802 LAN/WAN委员会为解决无线局域网网络安全问题,提出了802.1X协议.后来,802.1X协议作为局域网端口的一个普通接入控制机制在以太网中被广泛应用,主要解决以太网内认证 ...
- springboot注解开发
可以毫不夸张地说,这篇文章介绍的 Spring/SpringBoot 常用注解基本已经涵盖你工作中遇到的大部分常用的场景.对于每一个注解我都说了具体用法,掌握搞懂,使用 SpringBoot 来开发项 ...
- Git轻松入门2:分支篇
什么是分支 在玩剧情类游戏时,不同的选择会触发不同的剧情路线,每条剧情路线都会独立发展,最终走向不同的结局. Git中所谓的"分支(branch)"就如同游戏中的剧情路线,用户可以 ...
- allure生成的报告打开后显示loading
allure生成的报告打开后显示loading,怎么办? 1. allure生成报告的命令 1.1.生成测试数据 # 命令格式:pytest 相关参数 指定执行的用例 --alluredir=数据存放 ...
- HDOJ 1848(SG函数)
对于SG函数来说,sg[y]=x的意义为,x与y的输赢状态是相同的 sg[y]=mex(y)的定义与n.p点的定义是相同的 #include<iostream>#include<cs ...
- P1020 导弹拦截(LIS)
题目描述 某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统.但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能高于前一发的高度.某天,雷达捕捉到敌国的导弹 ...
- 头疼的Python 脚本报错
Python 脚本报错 检查是否用了制表符.变量声明前面不能用制表符,只能用空格,版本为2.7.14
- C++ part7
1.C++ 继承和组合 类的组合和继承一样,是复用的重要方式. 要优先使用组合而不是继承. 原因: 组合是黑箱复用,对局部类的内部细节不可见:继承是白箱复用,父类的内部细节可见,破坏封装性. 继承在编 ...
- PHP7.1后webshell免杀
严格的D盾 D盾说,我是个严格的人,看到eval我就报木马,"看着像"="就是"木马,宁可错杀一千,绝不放过一个.好了,多说无益,一起看看严格的D盾是如何错杀的 ...