• request和response——请求响应对象


    请求对象——request

    获取get请求的值

    一次请求,返回一个响应。
    地址栏:http://127.0.0.1:8000/day3/get_request?lan=python
    问号:代表请求参数

    需求:拿到请求参数

    传入单个值

    # views.py
    def get_request(request):
        return HttpResponse('getrequest')
    # urls.py
    path('getrequest',get_request),
    

    想要拿到地址栏中的参数
    print(request.GET)

    发现打印出来的是字典,所以——
    print(request.GET.get('lan'))

    【知识点】
    打印字典中的值,有两种办法:
    1,print(request.GET.get('lan'))——(一般用这个)假设key不存在,返回空值None
    2,print(request.GET['lan'])——key不存在,会抛出异常

    传入多个值


    print(request.GET.getlist('lan'))

    获取路由地址

    如何来到get_request函数的(这个视图函数)
    print(request.path_info)

    获取请求方式(get/post)

    print(request.method)

    【知识点】
    Django中地址栏默认是get请求,如果要发送post请求,需要把中间件的(选中的)注释掉

    【知识点】
    post请求,往表单中传入数据(用的postman)

    获取post请求的值

    获取value

    假设表单中的值是这样的:

    先看看request.POST打印出什么

    拿到request.POST.get('b_title')

    表单上传

    print(request.FILES)

    (files里面对应的是文件对象)

    根据请求方式选择路由

    path('testgetpost', test_get_post),
    # 根据不同的请求方式做不同的处理
    def test_get_post(request):
        if request.method == 'GET':
            return HttpResponse('get请求')
        elif request.method == 'POST':
            # li = [1,2]
            # print(li[2])
            return HttpResponse('post请求')
        else:
            return HttpResponse(request.method)
    

    响应对象——response

    常见的状态码

    200(响应成功)
    500(python代码有问题)
    404(资源找不到)
    405(请求不被允许)
    301 302 (重定向,浏览器的行为)

    给定响应头

    默认返回的头信息

     path('test_response_header',test_response_header),
    def test_response_header(request):
        ret = HttpResponse('test_response_header')
        return ret
    

    自定义头信息

     path('test_response_header',test_response_header),
    def test_response_header(request):
        # content-type是html类型
        ret = HttpResponse('test_response_header')
        # 自定义头信息
        ret['msg'] = 'success'
        ret['code'] = 'ok'
        return ret
    

    其他响应对象

    json 数据格式 解决前后端数据不认识的问题 {'key':value}
    前后不分离项目 :前后端全部编写,会经常使用HttpResponse对象
    前后分离项目时使用: 会经常使用JsonResponse对象

    json 数据格式

    用途:一般做前后分离项目时使用

    path('test_json_response', test_json_response),
    def test_json_response(request):
        # content-type是json类型
        return JsonResponse(request.GET)
    


    文件处理

    path('test_file_response',test_file_response),
     def test_file_response(request):
        return FileResponse(open('manage.py','rb'))
    

    return JsonResponse和return FileResponse的区别

    return JsonResponse和return:返回值类型是Json
    return FileResponse:返回值类型是文件的类型

  • 相关阅读:
    【数据分析】Python:处理缺失值的常见方法
    Git - 异常处理 : Git | SSL certificate problem: certificate has expired
    Vue中的数据筛选与搜索功能实现
    移动零(力扣热题HOT100 之 力扣283)java
    系统集成|第九章(笔记)
    【机器学习概念笔记】:空间概念
    B+树索引(3)之索引推导优化
    前端设计模式——过滤器模式
    Springcloud服务调用Feign组件以及负载均衡
    vscode 提升小程序开发效率的必备插件与工具
  • 原文地址:https://www.cnblogs.com/gsxm/p/16064068.html