request对象
(1).request对象的概念
概念:
每一个视图函数都必须接受一个形参 接受django传递过来的请求对象 request也就是在浏览器请求的时候 给视图函数的数据
(2).request对象的创建
服务器接受用户的请求后 会自动创建request对象,视图函数的第一个参数即为request对象
(3).属性
1.path
获取请求的路径
2.method
获取请求的方法
3.GET获取get传参
获取一个key的值
request.GET.get('key')
get方法取值
request.GET['key']
下标取值
两种获取get传参的区别:使用下标取值,如果值不存在则keyerror,get方法取值如果key不在则执行默认值,没有默认值则为None
(4)POST获取post传递过来的数据
views.py
# 获取POST表单传递过来的数据
# http://127.0.0.1:8000/form/
def form(req):
if req.method == 'GET':
return render(req,'form.html')
if req.method == "POST":
return HttpRespons(req.POST.get('username'))
url.py
from django.conf.urls import url
from App import views
urlpatterns = [
url(r'^form/$',views.form),
]
form.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<h2>form表单</h2>
<form action="/form" method="post">
<p>用户名<input type="text" name="username"></p>
<p>密码<input type='password' name='userpass'></p>
<p><input type='submit'></p>
</form>
</body>
</html>
(5).META获取所有的header头信息
# 获取所有的header头信息
def meta(req):
print(req.META)
print(req.META.get('REMOTE_ADDR'))
values = req.META.items()
html = []
for k,v values:
html.append('<tr><td>{}</td><td>{}</td></tr>'.format(k,v))
return HttpResponse('<table>%s</table>' % '\n'.join(html))
(6)方法
1.request_full_path()
获取完整的请求路径
2.request_host
获取主机和端口
3.request.is_ajax
是否为ajax请求
HttpResponse响应
概述:给浏览器的请求做出响应
(1)相应的方法
HttpResponse()
特点:不进行模板的调用,直接响应
实例
def form(req):
return HttpRespons('form')
属性
obj = HttpResponse()
1.obj.content
设置/获取内容
2.obj.status_code
设置/获取状态码
obj.status_code = 404