Django_views视图
1.request对象
属性:
# 返回这次请求是http还是https。
request.scheme
# 返回当前请求的URL request.path
# 返回一个请求的类型,get或者post request.method
# 返回请求的MIME类型的字符串,(MIME 消息能包含文本、图像、音频、视频以及其他应用程序专用的数据。) content_type
# 获取到浏览器提交的get类型的数据。 request.GET # 获取到浏览器提交的post类型的数据 request.POST
# 获取上传的文件 request.FILES
# 包含所有可用HTTP标头的字典。 request.META
一些HTTP标头的例子:
CONTENT_LENGTH——请求体的长度(作为字符串)。
CONTENT_TYPE——请求体的MIME类型。
HTTP_ACCEPT——响应的可接受内容类型。
HTTP_ACCEPT_ENCODING—响应的可接受编码。
HTTP_ACCEPT_LANGUAGE—响应的可接受语言。
HTTP_HOST——客户端发送的HTTP主机报头。
HTTP_REFERER——引用页面,如果有的话。
HTTP_USER_AGENT——客户机的用户代理字符串。
QUERY_STRING—查询字符串,作为单个(未解析的)字符串。
REMOTE_ADDR——客户端的IP地址。
REMOTE_HOST——客户机的主机名。
REMOTE_USER—通过Web服务器验证的用户(如果有)。
REQUEST_METHOD—字符串,如“GET”或“POST”。
SERVER_NAME—服务器的主机名。
SERVER_PORT——服务器的端口(作为字符串)。
方法:
# 返回服务器的IP地址和端口。 request.get_host() # 返回端口 request.get_port() # 返回全部的请求路径 request.get_full_path() # 返回位置的绝对URL形式。 request.build_absolute_uri() # 将'/qwe/asd/zxc'拼接到绝对URL后面,返回。 request.build_absolute_uri('/qwe/asd/zxc') # 判断是否为https,返回True或False。 request.is_secure() # 判断是否ajax请求,返回True或False。 request.is_ajax()
2.HttpResponse
# 将"content"返回给网页。默认是以html的形式。 HttpResponse(content) # 将"content"返回给网页,以文本的形式。 HttpResponse(content, content_type="text/plain")
# 修改状态码,为404。 HttpResponse(html, content_type="text/plain", status=404)
下载文件:
def test1(request): # 打开文件 f = open('statie_date/1.png', 'rb') # 告诉浏览器要返回的文件类型 wdc = HttpResponse(f.read(), content_type='image/png') # 告诉浏览器收到文件后如果处置内容 wdc['Content-Disposition'] = 'attachment; filename="wdc.png"' return wdc
3.render
render方法可接收三个参数,一是request参数,二是待渲染的html模板文件,三是保存具体数据的字典参数。
它的作用就是将数据填充进模板文件,最后把结果返回给浏览器。
def test1(request): data = 'dfqiubvpqejbvpq' return render(request, 'test.html', {'qqq': data})
4.redirect
接受一个URL参数,表示让浏览器跳转去指定的URL.
def index(request): # 业务逻辑代码 return redirect("https://www.baidu.com")