views视图函数属于MTV中逻辑处理的部分
视图函数包含着两个对象,HttpRequest对象和HttpResponse对象

一.HttpRequest对象

HttpRequest对象在Django中会默认传到views函数中作为第一个参数

HttpRequest的属性:

属性 说明
path 请求页面的全路径,不包括域名
method 请求中使用的HTTP方法
GET 包含所有HTTP GET参数的类字典对象
POST 包含所有HTTP POST参数的类字典对象
REQUEST 该属性是POST和GET属性的集合体,先查找POST属性,然后再查找GET属性
COOKIES 包含所有cookies的标准Python字典对象
FILES 包含所有上传文件的类字典对象。FILES中的每个Key都是<input type=”file” name=”” />标签中name属性的值. FILES中的每个value 同时也是一个标准Python字典对象,包含下面三个Keys: filename: 上传文件名,用Python字符串表示 content-type: 上传文件的Content type content: 上传文件的原始内容
META 包含所有可用HTTP头部信息的字典
user 是一个django.contrib.auth.models.User 对象,代表当前登录的用户。如果访问用户当前没有登录,user将被初始化为django.contrib.auth.models.AnonymousUser的实例
session 唯一可读写的属性,代表当前会话的字典对象。只有激活Django中的session支持时该属性才可用
raw_post_data 原始HTTP POST数据,未解析过

HttpRequest的方法:

方法 说明
getitem(key) 返回GET/POST的键值,先取POST,后取GET
has_key() 检查request.GET or request.POST中是否包含参数指定的Key
get_full_path() 返回包含查询字符串的请求路径,包含get方式发送的数据
is_secure() 如果请求是安全的,返回True

二.HttpResponse对象

HttpResponse对象是我们手动创建的,为了给用户发送一个相应,一般返回的就是让浏览器去渲染的前端页面。
例如:


from django.shortcuts import HttpResponse def login(req):
return HttpResponse("welcome")

在HttpResponse的基础上拓展了两个常用方法render方法和redirect方法

render方法

render方法用于将有关信息利用模板添加到要给用户发送的html文档中
render方法的参数:

  • request:即视图函数中的HttpRequest对象,也就是第一个参数
  • template_name:templates 中定义的文件,也就是html文档
  • context: 要传入html文档中用于渲染呈现的数据, 默认是字典格式。也可以使用locals(),表示将函数中所有的变量传给模板
  • content_type: 生成的文档要使用的MIME 类型。默认为DEFAULT_CONTENT_TYPE 设置的值
  • status: http的响应代码,默认是200
  • using: 用于加载模板使用的模板引擎的名称

例如:


def login(req):
return render(req,"test.html",{"name":"sfencs"})

redirect方法

redirect方法表示重定向,参数可以一个完整的url路径如”https://www.cnblogs.com/"也可以是一个本网站的分支路径如"/login/
这里有一点要注意,如果redirect的路径中写的是”login/“,即没有前面那一个“/”,那么会重定向到你当前页面的路径后再加上”login/“的那个路径。
redirect方法与render方法的区别在于redirect方法会重新走一遍重定向路径的视图函数的逻辑,render方法只是直接返回一个页面,上方的地址栏中的路径还是原来的路径。

Django之views视图函数的更多相关文章

  1. django views视图函数返回值 return redirect httpresponse总结

    django views视图函数返回值 return redirect  render httpresponse总结

  2. django views视图函数

    Django views.py视图文件 一. 创建views.py文件,在工程文件夹根目录创建views.py视图文件,其实任意文件名都可以,使用views是为了遵循传统. 注:所有的views函数都 ...

  3. python web框架篇:views视图函数

    Django请求的生命周期是怎样的? 简单地说,通过URL对应关系匹配 ->找到对应的函数(或者类)->返回字符串(或者读取Html之后返回渲染的字符串) 解剖起来如下: 1. 当用户在浏 ...

  4. Python学习---django重点之视图函数

    django重点之视图函数 http请求中产生两个核心对象: http请求:HttpRequest对象,由Django自己创建 http响应:HttpResponse对象,由开发自己创建,必须返回一个 ...

  5. 简单的django登录项目---带views视图函数(脚本文件)---用Bootstrap

    简单的django登录项目 1.首先建立工程,建立工程请参照:https://www.cnblogs.com/effortsing/p/10394511.html 2.在Firstdjango工程项目 ...

  6. Django创建通用视图函数

    想在我们有两个视图: def thinkingview(request): user = request.user if request.method == 'GET': return render( ...

  7. Django的views视图系统

    老师的博客:http://www.cnblogs.com/liwenzhou/articles/8305104.html 以看老师的博客为主 一个视图函数(类),简称视图,是一个简单的Python 函 ...

  8. Django 框架之视图函数(Views)

    http请求中产生的两个核心对象: http请求: HttpRequest对象 http响应: HttpResponse对象 所在位置: django.http HttpRequest 对象的属性和方 ...

  9. Django路由配置系统,视图函数

    一.路由配置系统(URLconf) URL配置(URLconf)就像Django 所支撑网站的目录.它的本质是URL与要为该URL调用的视图函数之间的映射表:你就是以这种方式告诉Django,对于这个 ...

随机推荐

  1. .gvimrc配置备份

    syn on "语法支持 colorscheme murphy set go= "common conf {{ 通用配置 "set ai "自动缩进 set b ...

  2. Java的HashCode,Equal和==

    ----------------------------------------以下是分割线---------------------------------------- 我们都知道Java语言是完 ...

  3. java设计模式-菜鸟网络

    http://www.runoob.com/design-pattern/singleton-pattern.html

  4. nginx的一次跨域处理

    1.事故 访问图片资源的时候,发生了跨域,具体报错如下所示: 403 Response to preflight request doesn't pass access control check: ...

  5. vue-cli 使用Mint-UI

    在安装好的vue-cli的项目基础上,安装Mint-UI cnpm install mint-ui -save //引入全部组件import Mint from 'mint-ui'import 'mi ...

  6. POJ 1730 Perfect Pth Powers(暴力枚举)

    题目链接: https://cn.vjudge.net/problem/POJ-1730 题目描述: We say that x is a perfect square if, for some in ...

  7. 求XF+闭包(第十一届河南省省赛真题)

    题目描述 如何设计一个好的数据库不仅仅是一个理论研究问题,也是一个实际应用问题.在关系数据库中不满足规范化理论的数据库设计会存在冗余.插入异常.删除异常等现象. 设R(U)是一个关系模式,U={ A1 ...

  8. .7-浅析express源码之Router模块(3)-app[METHODS]

    之前的讨论都局限于use方法,所有方式的请求会被通过,这一节讨论express内部如何处理特殊请求方法. 给个流程图咯~ 分别给出app.METHODS与router.METHODS: // app. ...

  9. 使用commons-pool2实现FTP连接池

    ​ GitHub : https://github.com/jayknoxqu/ftp-pool 一. 连接池概述 ​ 频繁的建立和关闭连接,会极大的降低系统的性能,而连接池会在初始化的时候会创建一定 ...

  10. MySQL常用操作汇编

    熟悉 我熟悉xxx,其实很多原来熟悉到能背的,如果长时间不用了几乎也就忘了.此时再说自己熟悉XXX就被认为是在吹牛B了,感觉不是很好.所谓温故而知新,对于天资不聪颖的,就是要在一遍一遍的复习实践中慢慢 ...