jango-视图
视图就是views.py中的函数
作用:接收HTTP请求,逻辑处理,返回HTTP响应给客户端(响应可以包括HTML,404,重定向,json数据.....)
视图的第一个参数必须是HttpRequest的对象,还可包含位置参数和关键字参数
必须返回一个HttpResponse对象给客户端,也可以返回一个子对象:JsonResponse,HttpResponRedirect(重定向)
从请求地址中取值:
第一个:位置参数,接收参数的时候要按正则中组的顺序
第二个:(?P<变量> 值)关键字参数 在视图中接收参数的时候位置不受影响,但是名字要和正则中的关键字名称一样
请求的URL被看成是一个普通的pyhon字符串,进行匹配的时候不包括域名,端口,get,post等参数。django会自动把这些东西截取,拿着剩下的才进行正则匹配
404
DEBUG = True 调试阶段
ALLOWED_HOSTS = []
一旦是线上模式需要将DEBUG改为False,
ALLOWED_HOSTS=[‘ * ’] .django不再提供静态文件的处理,Django擅长处理动态逻辑,静态文件交给nginx服务器处理
HttpRequest的对象,这个对象的属性都是只读的
在服务器接收到请求报文之后,会将根据报文创建一个HttpRequest对象,这个API由Django创建好的
django.http模块中定义了HttpRequest
视图的第一个参数必须是HttpRequest对象
HttpRequest对象的属性:
path:完整的请求路径,不包括域名
method获取请求方法:GET,POST
在浏览器中给出地址采用的是GET请求,如超链接
提交表单的时候发送的是POST请求
GET,POST属性都是类似于字典的QueryDict类型的对象。
与python不同的是 Query_Dict类型的对象,可以存储一键多值,键和值都是字符串类型的
GET属性获取的是请求路经中?后面的值,一键多值,和一键一值,一键一直用get方法来获取,一键多值get_list
POST属性获取的是表单中的数据,
通常表单中的input标签必须有name属性,在提交表单的时候,会拿着每个标签的name属性的值作为key,value的值作为value 构成一个键值对进行提交,如果表单控件没有name属性则不进行提交
HttpResponse对象
视图在就收请求并处理后,必须返回一个HttpResponse对象或子对象(JsonResponse,HttpResponse)
django.http这个模块中定义HttpResponse对象的API
常见的属性
count:表示返回的内容
charset;表示response采用的编码字符集,默认UTF-8
status_code:返回的HTTP响应的状态码
content-type:指定返回数据的MIME类型,默认为’’text/html’
常用的方法:write:向响应体中写入数据
JsonResponse
继承于HttpResponse
被定义在django.http模块中
接收字典搜索作为参数
响应的内容格式:
content-tyoe:默认为application/json