企业网站设计能否以,wordpress 附件显示设置,wordpress 多站点错误,营销型投资公司HttpRequest 和 HttpResponse
Django中的视图主要用来接受Web请求#xff0c;并做出响应。
视图的本质就是一个Python中的函数
视图的响应分为两大类
以Json数据形式返回(JsonResponse)以网页的形式返回 重定向到另一个网页 (HttpResponseRedirect)错误视图(4XX,5XX) (Htt…HttpRequest 和 HttpResponse
Django中的视图主要用来接受Web请求并做出响应。
视图的本质就是一个Python中的函数
视图的响应分为两大类
以Json数据形式返回(JsonResponse)以网页的形式返回 重定向到另一个网页 (HttpResponseRedirect)错误视图(4XX,5XX) (HttpResponseNotFound, HttpResponseForbidden, HttpResponseNotAllowed 等) 视图响应过程: 浏览器输入- urls路由匹配 - 视图响应 - 回馈到浏览器 视图参数: 一个HttpRequest的实例一般命名为request通过ur1正则表达式传递过来的参数 位置:
通常在应用下的views.py中定义
错误视图: 404视图(页面没找到)400视图(客户操作错误)500视图(服务器内部错误)
HttpRequest
服务器在接收到Http请求后会根据报文创建HttpRequest对象
视图中的第一个参数就是HttpRequest对象
Django框架接收到http请求之后会将http请求包装为HttpRequest对象之后传递给视图。
request常用属性和方法属性path 请求的完整路径method 请求的方法常用GET, POSTGET 类似字典的参数包含了get的所有参数POST 类似字典的参数包含了post所有参数FILES 类似字典的参数包含了上传的文件COOKIES 字典包含了所有COOKIEsession 类似字典表示会话META 一个字典包含了请求的元信息例如REMOTE_ADDR 客户端的IP地址方法is_ajax() 判断是否是ajax请求通常用在移动端和JS中get_full_path() 返回包含参数字符串的请求路径QueryDict类似字典的对象。与字典的区别可以存在相同的键。QueryDict中数据获取方式dict[uname] 或 dict.get(uname) 获取指定key对应的第一个值dict.getlist(uname) 获取指定key对应的所有值HttpResponse
HttpResponse由程序员自己创建1不使用模板直接调用HttpResponse()返回HttpResponse对象。2调用模板进行渲染。使用renderrender(request, template_name[, context])request 请求体对象template_name 模板路径context 字典参数用来填坑
属性:content 返回的内容charset 编码格式status_code 响应状态码(2xx, 3xx, 4xx, 5xx)
方法:write(xxx) 直接写出文本flush() 冲刷缓冲区set_cookie(key, valuexxx, max_ageNone) 设置cookiedelete_cookie(key) 删除cookieHttpResponse子类HttpResponseRedirect响应重定向可以实现服务器内部跳转return HttpResponseRedirect(/grade/2030)使用的时候推荐使用反向解析JsonResponse返回Json数据的请求通常用在异步请求上JsonResponse(dict)返回json数据时, Content-type是application/jsonviews.py
from django.http import HttpResponse, HttpResponseRedirect, JsonResponse
from django.shortcuts import redirect, render# Create your views here.def myrequest(request):print(request) # WSGIRequest: GET /request/?namelisiage18# request对象的属性和方法print(request.method) # GET / POST/ PUT/ DELETEprint(request.GET) # QueryDict对象(类字典对象,可以使用字典方法)包含GET请求参数print(request.GET[name]) # 如果name不存在会报错print( request.GET.get(name)) # 如果name不存在返回None或者默认值print(request.GET.getlist(name)) # 如果name不存在返回空列表, 否则返回列表print(request.POST) # QueryDict对象包含POST请求参数print(request.path) # 请求路径/request/print(request.get_full_path()) # 请求完整路径 (包含查询字符串)/request/?namelisiage18print(request.COOKIES) # 字典对象包含cookie信息print(request.session) # 字典对象包含session信息print(request.FILES) # 如果是上传文件返回一个文件对象否则返回None,前端上传的文件# print(request.META) # 字典对象包含HTTP请求头信息print(request.META[REMOTE_ADDR]) return HttpResponse(Hello Django!)def myresponse(request):# 1. 直接返回字符串# return HttpResponse(Hello Django!)# 2. 传入模板文件, 前后端不分离# return render(request, index.html)# 3. 重定向, redirect, reverse# return redirect(/request/)# return HttpResponseRedirect(/request/)# 4. 返回json数据, 前后端分离的方式# data {name: lisi, age: 18}# return JsonResponse(data)response HttpResponse()response.content Hello Django!response.status_code 200return response