django HttpResponse对象

1.服务器接收Http协议的请求后,会根据报文创建HttpResponse对象

2.视图函数的第一个参数就是HttpResponse对象

3.在django.http模块中定义了HttpResponse对象的API

子路由

from django.urls import path, re_path

from . import views

urlpatterns = [
    path(requ/, views.http_response, name=requ),
]

页面requestobj.html

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>httprequest对象</title>
</head>
<body>
    <p>{{ title }}</p>
    <form action="{% url ‘requ‘ %}" method="POST" enctype="multipart/form-data">
        {% csrf_token %}
        姓名:<input type="text" name="uname"><br/>
        爱好:<input type="checkbox" name="like" value="0">秘制小汉堡
            <input type="checkbox" name="like" value="1">画画baby
            <input type="checkbox" name="like" value="2">一给我里giao<br/>
            <input type="file" name="file"><br/>
            <input type="file" name="file"><br/>
        <button>提交</button>
    </form>
</body>
</html>

视图函数views.py

from django.shortcuts import render, redirect
from django.http import HttpResponse, Http404, HttpResponseNotFound, JsonResponse
from django.urls import reverse
from . import models

def http_response(request):
    # 判断用户是请求页面(get方法)还是提交数据(post方法)
    if request.method == GET:
        print(request.path)
        print(request.method)
        print(request.encoding)
        print(request.GET.get(uname, 无名))
        print(request.GET.getlist(like, 无爱))
        return render(request, requestobj.html, {title: 填写信息})
    elif request.method == POST:
        # QueryDict.get(‘键‘,default)
        #       只能获取键的一个值,如果一个键同时拥有多个值,获取最后一个值
        #       或键不存在,有default默认值则返回默认值,没有默认值则返回None
        name = request.POST.get(uname, 姓名)
        # QueryDict.getlist(‘键‘,default)
        #       将键的值以列表返回,可以获取一个键的多个值
        #       或键不存在,有default默认值则返回默认值,没有默认值则返回None
        likes = request.POST.getlist(like, 爱好)
        files = request.FILES.getlist(file, 文件)
        cookies = request.COOKIES
        print(name)
        print(likes)
        print(files)
        print(cookies)
        json_data = [{name: name, likes: likes[0], cookies: cookies[csrftoken]},
                     {name: name, likes: likes[0], cookies: cookies[csrftoken]}]
        # 返回json数据,一般用于异步请求,帮助用户创建JSON编码的响应,默认Content-Type为application/json
        # safe=False 当json数据为多组字典形式时需要使用
        return JsonResponse(json_data, safe=False)

 

django HttpResponse对象

上一篇:http常用状态码


下一篇:CSS的语法规范