zoukankan      html  css  js  c++  java
  • 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/

  • 相关阅读:
    分层开发的优势
    分层开发的特点
    三层开发遵循的原则
    为什么需要分层
    什么是JNDI
    为什么需要JavaBean
    连接池中的连接对象是由谁创建的呢?
    什么是连接池技术
    为什么使用连接池?(为什么要使用JNDI)
    Servlet加载
  • 原文地址:https://www.cnblogs.com/xiamen-momo/p/14299161.html
Copyright © 2011-2022 走看看