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)的更多相关文章

  1. Django基础之视图(views)层、模板层

    目录 Django基础之视图(views)层.模板层 JsonResponse 向前端返回一个json格式字符串的两种方式 重写Django中的json的某个方法 form表单上传文件 FBV与CBV ...

  2. 测试开发之Django——No8.Django中的视图与URL配置

    在Django中,页面内容是靠views function(视图函数)来产生,URL定义在URLconf中. 这是一个纯净项目的url配置文件,他存在的目录,是与setting文件在同一个目录中. u ...

  3. Django中的视图

    Django的View(视图) 一个视图函数(类),简称视图,是一个简单的Python 函数(类),它接受Web请求并且返回Web响应. 响应可以是一张网页的HTML内容,一个重定向,一个404错误, ...

  4. Django入门3:视图views

    1.获取用户请求数据 1.1 request.GET 获取request.method='GET'的数据 request.GET.get('name',None) 1.2 request.POST 获 ...

  5. Django中的视图(view)

    视图 1.什么是视图 视图就是Django项目下的view.py文件,它的内部是一系列的函数或者是类,用来专门处理客户端访问请求后处理请求并且返回相应的数据,相当于一个中央情报处理系统 2.具体视图实 ...

  6. Django框架中的视图和模板

    视图views django中的视图就是用来定义函数来处理一些逻辑的核心地方. django中通过urls来建立路径跟views中的视图函数的映射关系. urls中的映射关系 ''' urlpatte ...

  7. Django:视图views(一)

    1.环境搭建 在django中,视图负责与web请求进行交互 视图本质上是一个Python函数,定义在booktest/views.py.通过django1/urls.py路由到该视图中. 首先经过创 ...

  8. Django (六) 视图 views

    views 1. 视图及HttpRequest 和HttpResponse Django中的视图主要用来接受Web请求,并做出响应. 视图的本质就是一个Python中的函数 视图的响应分为两大类 1) ...

  9. Django整理(二) - 视图和模板的初步使用

    Django中的视图 · Django使用视图来编写web应用的业务逻辑 · Django的视图也就是一个函数,可称为视图函数 · 视图定义在应用的view.py文件中 · 视图需要绑定一个URL地址 ...

随机推荐

  1. nginx php-fpm启用慢日志slowlog

    php-fpm慢日志slowlog设置可以让我们很好的看见哪些php进程速度太慢而导致的网站问题. 可以让我们方便的找到问题的所在.  代码如下 1 vi /data1/server/php-cgi/ ...

  2. logback参考配置

    logback配置 <?xml version="1.0" encoding="UTF-8"?> <configuration> < ...

  3. rgb2yuv

    1.rgb2yuv422p 代码的运算速度取决于以下几个方面 1. 算法本身的复杂度,比如MPEG比JPEG复杂,JPEG比BMP图片的编码复杂. 2. CPU自身的速度和设计架构 3. CPU的总线 ...

  4. jqgrid的排序问题

    今天是本人解决的一个小bug  所以写的粗略些. 问题是这样的ORDER BY  a.$sidx $sord 当时本人排序时候没用jqgrid的默认排序(可能今天这个大家看不懂,很抱歉啊各位,今天主要 ...

  5. TArray数组

    TArray<int32> arr; arr.Init(,); ; index < arr.Num(); index++) { FString str = FString(" ...

  6. JDBC批量操作性能提升

    JDBC 当使用INSERT INTO....VALUES()语句批量插入的时候,应该使用JDBC的PreparedStatement的批量操作方法,而不是採用一条一条运行的方法. 比如(来源:htt ...

  7. 面试心得与总结—BAT、网易、蘑菇街 - ImportNew

    1. 九种基本数据类型的大小,以及他们的封装类. 2. Switch能否用string做参数? 3. equals与==的区别. 4. Object有哪些公用方法? 5. Java的四种引用,强弱软虚 ...

  8. CSS3的自定义字体@font-face:将图片ICON转为字体

    大家都知道现在各个浏览器都支持CSS3的自定义字体(@font-face),包括IE6都支持,只是各自对字体文件格式的支持不太一样.那么对于网站中用到的各种icon,我们就可以尝试使用font来实现, ...

  9. Avalondock 第四步 边缘停靠

    前一章介绍了分组功能,这一章主要介绍细节信息,LayoutRoot的side属性 LayoutRoot包含四个属性,LeftSide,RightSide,TopSide,BottomSide,分别用于 ...

  10. Idea之Tomcat

    安装配置   启动 三种方式,run,debug,coverage       面板说明     上面一排 Debugger:debug模式的时候显示方法,调用关系,参数值等, Server:打印日志 ...