django 中的视图(Views)
Views
Django中views里面的代码就是一个一个函数逻辑, 处理客户端(浏览器)发送的HTTPRequest, 然后返回HTTPResponse,

http请求中产生两个核心对象:
http请求:HttpRequest对象
http响应:HttpResponse对象
所在位置:django.http
当一个页面请求来时,Django把请求的metadata数据包装成一个HttpRequest对象,然后Django加载合适的view方法,把这个HttpRequest 对象作为第一个参数传给view方法。任何view方法都应该返回一个HttpResponse对象
1、views.py中编写简单的逻辑函数
from django.shortcuts import render,render_to_response
from django.http.response import HttpResponse # Create your views here.
def login(request):
if request.method=='POST':
user=request.POST.get('username', None)
pwd=request.POST.get('password',None)
result=UserInfo.objects.filter(username=user,paw=pwd).count()
if result==1:
return HttpResponse('登录成功')
else:
return render_to_response('login.html',{'status':'用户名或密码错误!'})
else:
return render_to_response('login.html')
1、HttpRequest对象的属性和方法
path #请求页面的全路径,不包括域名 method #请求中使用的HTTP方法的字符串表示。全大写表示。如:
if Request.method=='GET':
pass
elif request.method=='POST':
pass GET #包含所有HTTP GET参数的类字典对象 POST #包含HTTP POST参数的类字典对象
#服务器收到空的POST请求的情况也是可能发生的,也就是说,表单form通过
# HTTP POST方法提交请求,但是表单中可能没有数据,因此不能使用
# if req.POST来判断是否使用了HTTP POST 方法;应该使用 if req.method=="POST" COOKIES: #包含cookie的标准Python字典对象;keys和values都是字符串 FIlES: #包含所有上传文件的类字典对象;FILES中的每一个Key都是<input type='file' name=''/> name属性的值,FILES中的每一个values同时也是一个标准的Python字典对象,包含下面三个keys:
# filesname:上传文件名,用字符串表示
# content_type:上传文件的Content_type
# content:上传文件的原始内容 user #是一个Django.contrib.auth.models.User对象,代表当前登录的用户,如果访问用户当前没有登录,user将被初始化为django。contrib.auth.models.AnonymousUser的实例。你可以通过user的is_authenticated()方法来辨别用户是否登录:if req.user.is_authenticated();只有激活django中的AuthentionMiddleware时该属性才可用 session: #唯一可读写的属性,代表当前回话的字典对象;自己有激活django中的session支持时该属性才可用 #方法
get_full_path(): #比如http://127.0.0.1:8000/index33/?name=123
#req.get_full_path()得到的结果就是/index33/?name=123
req.path --> /index33
注意一个常用方法:
request.POST.getlist('key') #django中同通过getlist() 接收页面form的post数组
#如果使用request.POST.get('key')方法,只能获得数组的最后一个元素,必须使用getlist才能获取整个数组,以Python列表的形式返回所请求键的数据。 若键不存在则返回空列表。 它保证了一定会返回某种形式的list。
2、HttpResponse对象:
对于HttpRequest对象来说,是由django自动创建的,但是,httpResponse对象就必须我们自己创建,每个view请求处理方法必须返回一个HttpResponse对象。
HttpResponse类在django.http.HttpResponse
在HttpResponse对象上扩展的常用方法:
页面渲染: render()(推荐) render_to_response()
页面跳转: redirect("路径")
locals(): 可以直接将函数中所有的变量传给模板
django 中的视图(Views)的更多相关文章
- Django基础之视图(views)层、模板层
目录 Django基础之视图(views)层.模板层 JsonResponse 向前端返回一个json格式字符串的两种方式 重写Django中的json的某个方法 form表单上传文件 FBV与CBV ...
- 测试开发之Django——No8.Django中的视图与URL配置
在Django中,页面内容是靠views function(视图函数)来产生,URL定义在URLconf中. 这是一个纯净项目的url配置文件,他存在的目录,是与setting文件在同一个目录中. u ...
- Django中的视图
Django的View(视图) 一个视图函数(类),简称视图,是一个简单的Python 函数(类),它接受Web请求并且返回Web响应. 响应可以是一张网页的HTML内容,一个重定向,一个404错误, ...
- Django入门3:视图views
1.获取用户请求数据 1.1 request.GET 获取request.method='GET'的数据 request.GET.get('name',None) 1.2 request.POST 获 ...
- Django中的视图(view)
视图 1.什么是视图 视图就是Django项目下的view.py文件,它的内部是一系列的函数或者是类,用来专门处理客户端访问请求后处理请求并且返回相应的数据,相当于一个中央情报处理系统 2.具体视图实 ...
- Django框架中的视图和模板
视图views django中的视图就是用来定义函数来处理一些逻辑的核心地方. django中通过urls来建立路径跟views中的视图函数的映射关系. urls中的映射关系 ''' urlpatte ...
- Django:视图views(一)
1.环境搭建 在django中,视图负责与web请求进行交互 视图本质上是一个Python函数,定义在booktest/views.py.通过django1/urls.py路由到该视图中. 首先经过创 ...
- Django (六) 视图 views
views 1. 视图及HttpRequest 和HttpResponse Django中的视图主要用来接受Web请求,并做出响应. 视图的本质就是一个Python中的函数 视图的响应分为两大类 1) ...
- Django整理(二) - 视图和模板的初步使用
Django中的视图 · Django使用视图来编写web应用的业务逻辑 · Django的视图也就是一个函数,可称为视图函数 · 视图定义在应用的view.py文件中 · 视图需要绑定一个URL地址 ...
随机推荐
- hadoop本地化运行
mr的三种运行方式 第一种,打成jar包,在hadoop上运行 第二种,driver端在本地,通过ide连接linux上的hdfs 第三种,windows本地运行 hadoop_dll2.6.0_64 ...
- 交叉编译移植openssl
交叉编译openssl静态库步骤: 1.解压源码 tar xf openssl-1.1.1a.tar.gz 2.进入到解压后的源码目录 cd openssl-1.1.1a/ 3.配置Makefile ...
- APACHE支持.htaccess
需要开启.htacess功能需要以下三步: 1 2 3 4 5 6 7 8 9 1.打开httpd.conf 将Options FollowSymLinks AllowOverride None ...
- Java中的BlockingQueue小结
BlockingQueue是java.util.concurrent下的主要用来控制线程同步的工具. 主要的方法是:put.take一对阻塞存取:add.poll一对非阻塞存取. 插入: 1) add ...
- 微信小程序2 - 扩展Page参数
官方默认的Page初始代码为 var option = { /** * 页面的初始数据 */ data: { }, /** * 生命周期函数--监听页面加载 * */ onLoad: function ...
- 把查询到结果合并放在一行 JOIN非union
select one.max,one.min,one.low sts,c.high ens,one.time from ( select a.max max,a.min min,b.low low,a ...
- 第二百二十节,jQuery EasyUI,Slider(滑动条)组件
jQuery EasyUI,Slider(滑动条)组件 学习要点: 1.加载方式 2.属性列表 3.事件列表 4.方法列表 本节课重点了解 EasyUI 中 Slider(滑动条)组件的使用方法,这个 ...
- 加速I/O的基本规则
作为这个讨论的开始,这里有几个如何加速I/O的基本规则: 1. 避免访问磁盘 2. 避免访问底层的操作系统 3. 避免方法调用 4. 避免个别的处理字节和字符 很明显这些规则不能在所有的问题上避免,因 ...
- javascript汇总(转)
字符串操作:http://www.cnblogs.com/magetu/archive/2012/12/18/javascript-string-methods-reference.html 几种对象 ...
- Multiview
新建3个ViewController的类 新建main.stroyboard,并配置好相应的布局(编辑界面,连接视图与类,ViewController的Storyboard ID,连接3个Button ...