JsonResponse({'name':'张三','age':33})
HttpResponseRedirect('http://www.baidu.com')
(HttpResponseNotFound,HttpResponseForbidden,HttpResponseNotAllowed等)
Debug=False
ALLOWED_HOSTS=[*]
TEMPLATES中 'DIRS': [os.path.join(BASE_DIR,'templates')]
response响应
# return HttpResponse('hello response')
# return render(request, 'httpApp/index.html')
# return JsonResponse({'name':'张三', 'age':33})
# return HttpResponseRedirect('http://www.baidu.com') # 重定向
# return HttpResponseNotFound('Not Found') # 错误视图
服务器在接收到Http请求后,会根据报文创建HttpRequest对象;
视图中的第一个参数就是HttpRequest对象;
Django框架接收到http请求之后会将http请求包装为HttpRequest对象,之后传递给视图。
HttpRequest和HttpResponse属性和方法的详细说明
常用属性和方法:
属性:
path 请求的完整路径
method 请求的方法,常用GET,POST
encoding 编码方式,常用utf-8
GET 类似字典的参数,包含了get的所有参数
POST 类似字典的参数,包含了post所有参数
FILES 类似字典的参数,包含了上传的文件
COOKIES 字典,包含了所有COOKIE
session 类似字典,表示会话
方法:
is_ajax() 判断是否是ajax(),通常用在移动端和JS中
get_full_path() 返回包含参数字符串的请求路径 ./httpapp/index/?name=zhang&name=li&age=22
request请求例子:
网站:http://127.0.0.1:8001/httpapp/index/?name=11&age=22&name=33
对应信息:
print(request.path) # /httpapp/index/, 路径
print(request.method) # GET , 请求方式
print(request.encoding) # None, 编码类型
print(request.GET) # , GET请求提交的参数
print(request.POST) # , POST请求提交过来的参数
print(request.FILES) # , 文件上传的内容
print(request.COOKIES) # {'csrftoken': 'b7Fm6ysbmnWKJX8pplQd3211ewa6eSxJ9TZgGzH7vEdrYO05PIUJSzCGxivf7E2D'}
print(request.session) #
print(request.is_ajax()) # False, 是否使用ajax请求
print(request.get_full_path()) # /httpapp/index/?name=11&age=22&name=33
print(request.GET.get('name')) # 33
print(request.GET.getlist('name')) # ['11', '33']
服务器返回给客户端的数据。
HttpResponse由程序猿自己创建:
1)不使用模板,直接调用HttpResponse(),返回HttpResponse对象。
2)调用模板,进行渲染。
2.1) 先load模板,再渲染
2.2) 直接使用render一步到位
render(request,template_name[,context])
request 请求体对象
template_name 模板路径
context 字典参数,用来填坑
属性:
content 返回的内容
charset 编码格式
status_code 响应状态码(200,3xx,404,5xx)
方法:
init 初始化内容
write(xxx) 直接写出文本
flush() 冲刷缓冲区
set_cookie(key,value='xxx',max_age=None) 设置cookie
delete_cookie(key) 删除cookie
HttpResponse子类
1)HttpResponseRedirect:响应重定向:可以实现服务器内部跳转
return HttpResponseRedict('/grade/2017')
使用的时候推荐使用反向解析。
2)JsonResponse:返回Json数据的请求,通常用在异步请求上
3)JsonResponse(dict):返回json数据时,Content-type是application/json
示例:# response响应的属性
response = HttpResponse('hello response')
response.content = 'hello 宝强' # 设置内容
response.write(' hello 马蓉') # 追加内容
response.status_code = 404
return response