美文网首页
Django-视图之HttpResponse对象

Django-视图之HttpResponse对象

作者: 测试探索 | 来源:发表于2022-09-10 17:03 被阅读0次

    可以使用from django.http import HttpResponse来构造响应对象。

    HttpResponse(content=响应体,content_type=响应体数据类型,status=状态码)
    

    也可通过HttpResponse对象属性来设置响应体,响应体数据类型,状态码:

    • content:表示返回的内容。
    • status_code:返回的HTTP响应状态码。
      响应头可以直接将HttpResponse对象当做字典进行响应头键值对的设置
    response = HttpResponse("res",status=200)
    response["name"] = "itcase"  #自定义响应头name,值为itcase
    
    demo

    book/views.py,增加访问路由

    from django.shortcuts import render
    from django.http import HttpResponse
    from book.models import BookInfo
    import json,re
    
    # Create your views here.
    
    def response(request):
        response = HttpResponse("res",status=200)
        response["name"] = "itcase"  #自定义响应头name,值为itcase
        return response
    

    book/urls.py

    from django.urls import path
    from book.views import create_book,shop,register,jsons,response
    from django.urls import converters
    from django.urls.converters import register_converter
    
    # 第一步.定义转换器
    class MobileConverter:
        # 验证数据的关键是:正则
        regex = '1[3-9]\d{9}'
    
        # 验证没有问题的数据,给视图函数
        def to_python(self, value):
            return value
    
        # def to_url(self, value):
        #     # 将匹配结果用于反向解析传值时使用
        #     return value
    
    # 第二步.注册转换器,才能在第三步中使用
    # 参数讲解
    #converter :转换器类
    #type_name :转换器名字
    register_converter(MobileConverter,'phone')
    
    
    urlpatterns = [
        path('create/',create_book),
        # <转换器名字:变量名>
        # 转换器会对变量数据进行正则验证
        # 第三步,使用
        # int为系统自带转换器,python为自定义编写的转换器
        path('<int:city_id>/<phone:mobile>/',shop),
        path('register/',register),
        path('json/',jsons),
        path('res/',response),
    ]
    
    通过postman请求
    HttpResponse子类JsonResponse

    若要返回json数据,可以使用JsonResponse来构造响应对象,作用

    • 帮助我们将数据转换为json字符串
    • 设置响应头Content-Type为application/json
      book/views.py
    from django.shortcuts import render
    from django.http import HttpResponse,JsonResponse
    from book.models import BookInfo
    import json,re
    
    # Create your views here.
    def response(request):
        info = {
            "name":"itcase",
            "address":"shunyi"
        }
        girl_firends = [
            {
                "name": "rose",
                "address": "shunyi"
            },
            {
                "name": "jack",
                "address": "changping"
            }
        ]
    
        # data 返回的响应数据,一般是字典类型
        """
        safe = True  表示 data是字典数据,JsonResponse 可以把字典转为json
        safe = False 传入非字典,出了问题,自己负责 
        
        """
        response = JsonResponse(data = girl_firends,safe=False)
        return response
    
    结果

    相关文章

      网友评论

          本文标题:Django-视图之HttpResponse对象

          本文链接:https://www.haomeiwen.com/subject/tlptortx.html