视图函数,简称视图,本质上是一个简单的Python函数,它接受网络请求并且返回Web响应。响应的内容可以是HTML网页,重定向,404错误,图片等任何东西,但本质是返回响应对象HttpResponse。
视图函数的代码写哪里都可以,但一般约定俗成设置在项目或应用程序目录中的观点。py文件中
视图案例:
django。快捷方式进口呈现,HttpResponse HttpResponseRedirect,定向 进口日期时间 def current_datetime(请求): 现在=datetime.datetime.now () html=" & lt; html> & lt; body>现在% s。;/body> & lt;/html>”%现在 返回HttpResponse (html) >之前解析:
<李>从django。快捷键模块导入了HttpResponse类,以及Python的datetime库。李> <李>定义了current_datetime函数。它就是视图函数。每个视图函数都使用HttpRequest对象作为第一个参数,并且通常称之为请求。视图函数的名字能反映除它的功能即可李> <李>视图函数最后返回HttpResponse对象,其中包含生成的响应。每个视图函数都负责返回一个HttpResponse对象。李>
<强>请求对象(请求)的属性:强>
django将请求报文中的请求行,首部信息,内容主题封装成HttpRequest类中的属性。除特殊说明外,其他均为只读
1. request.POST ,,#前台帖子传过来的数据,包装到后字典中
2. request.GET ,,,#前台浏览器窗口里携带的数据,包装到得到字典中
3.request.method #前台请求的方式
4. request.body ,,#后提交的数据,身体体的内容,前台会封装成:name=lqz&年龄=18和性别=1
5. request.path #取出请求的路径,取不到数据部分
6. request.encoding #一个字符串,表示提交的数据的编码方式,默认“utf - 8”
7. request.META #一个标准的Python字典,包含所有的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——服务器认证后的用户。
,,,,,,REQUEST_METHOD——一个字符串,例如“获得”或“后”。
,,,,,,SERVER_NAME——服务器的主机名。
,,,,,,SERVER_PORT——服务器的端口(是一个字符串)。
,,- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
,,除CONTENT_LENGTH和CONTENT_TYPE之外,请求中的任何HTTP首部转换为元的键时,
,,都会将所有字母大写并将连接符替换为下划线最后加上HTTP_ 前缀。
,,- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
8. 请求。文件#包含所有的上传文件信息。
9. request.COOKIES #字典格式,键和只都是字符串,包含所有的饼干
10. request.session #当前会话,只有当django启用会话时才可用
11. request.user(用户认证组件)
,,一个AUTH_USER_MODEL类型的对象,表示当前登录的用户。如果用户当前没有登录,用户将设置为django.contrib.auth.models。AnonymousUser的一个实例只,,,,,你可以通过is_authenticated()区分它们。
例如:
如果request.user.is_authenticated (): #为登录用户做一些事情。 其他: #为匿名用户做一些事情。用户只有当Django启用AuthenticationMiddleware中间件时才可用。
匿名用户
类models.AnonymousUser django.contrib.auth.models。AnonymousUser类实现了django.contrib.auth.models。用户接口,但具有下面几个不同点: >之前,,,id永远为None。
,,用户名永远为空字符串。
,,get_username()永远返回空字符串。
,,is_staff和is_superuser永远为假。Django视图层(视图)的使用