当请求一个页面时,Django 创建一个包含有关请求数据的 HttpRequest 对象,并将它作为第一个参数传给视图函数,每个视图函数处理完相应逻辑后返回一个 HttpResponse 对象,HttpRequest 和 HttpResponse 都被定义于 django.http 模块中。

HttpRequest 对象包含当前用户、使用的浏览器、当前请求 URL 的一些信息等。

属性 类型 说明
HttpRequest.body   str  
HttpRequest.path str 除域名以外的请求路径,以正斜杠开头  
HttpRequest.path_info str 在某些WEB服务器配置的URL,在主机名之后的部分被分成脚本前缀和路径信息两部分,而 path_info 就是表示路径信息部分的。(脚本前缀可以在WEB服务器中设置)
HttpRequest.method str HTTP请求的方式,值为 'GET' 或 'POST'
HttpRequest.encoding    
HttpRequest.GET django.http.QueryDict (dict 的子类) 键可重复,相当于c++的 multimap
HttpRequest.POST django.http.QueryDict 键可重复,相当于c++的 multimap
HttpRequest.REQUEST django.http.QueryDict 可以替代 HttpRequest.GET 和 HttpRequest.POST 的使用,不需要分清是GET还是POST即可获取数据,推荐使用。
HttpRequest.COOKIES dict 键值都是 str
HttpRequest.FILES 类 dict 包含所有上传文件。键是 <input type='file' name=""> 中name,值是一个 UploadedFile 对象。
HttpRequest.META dict 包含所有本次HTTP请求的 Header 信息,如用户IP和浏览器信息等。
HttpRequest.user AUTH_USER_MODEL 必须安装了 AuthenticationMiddleware 才可用
HttpRequest.session 类 dict 可读可写,表示当前会话,仅当 django 安装了 session 支持时可用
HttpRequest.urlconf    
HttpRequest.resolver_match    
def search(request):
errors = []
if request.REQUEST.get('uid'):
return render_to_response('result.html',{'query':request.REQUEST.get('uid')})
elif 'uid' in request.REQUEST:
errors.append('uid is null')
return render_to_response('search.html',{'errors':errors})
else:
return render_to_response('search.html',{'errors':errors})

应每次都给成功的GET 或 POST 请求(如果会改动数据库中数据的话)做重定向,这就是web开发的最佳实践。

django 自带一个 form 库,称为 django.forms,它可以进行表单显示、表单验证、当验证失败时重新显示表单、将表单数据转化成相关python类型:

#coding:utf-8
from django import forms from django.conf import settings
settings.configure() class MyForm(forms.Form):
uid = forms.IntegerField(required=True)
name = forms.CharField(required=True,widget=forms.Textarea,label='姓名',max_length=10)
def clean_uid(self):
uid = self.cleaned_data['uid']
if uid<0:
raise forms.ValidationError('uid 不能为负数!')
return uid f = MyForm({'uid':-3,'name':'tianya'}) print '输出MyForm对象:%s' %f
print '绑定:%s' %f.is_bound
print '验证:%s' %f.is_valid()
print '错误:%s' %f.errors
print 'uid字段的错误:%s' %f['uid'].errors
print '整理后的可用数据:%s' %f.cleaned_data

如果要复用 django 中定义好的 model ,可以使用 ModelForm,以避免重复模型描述。

django view的更多相关文章

  1. django view 装饰器

    Django提供了几个可以应用于视图以支持各种HTTP特性的装饰器 Allowed HTTP django.views.decorators.http里的装饰器可以根据请求方法限制对视图的访问. re ...

  2. Django View(视图系统)

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

  3. Django view(视图)

    在Django MTV模式中,View视图负责业务逻辑部分,路由系统接收到HTTP请求,并将任务分配给相应的视图函数,由视图函数来负责响应这个请求.无论视图本身包含什么逻辑,都要返回响应. 在这里HT ...

  4. Django view 视图

    request.method 判断请求方式 8种 GET : 获取一个页面 POST: 提交数据 PUT : 上传 HEAD: 不用上传就获取数据 DELETE: 删除 Request-URL 标识的 ...

  5. Django View视图

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

  6. django view 视图控制之数据返回的视图函数

    八.视图 view 概述:views.py定义的python函数,它接受Web请求并且返回Web响应. 有几个页面就有几个视图view user出入url地址,发送request--->urls ...

  7. Django View 进阶

    返回404 from django.http import HttpResponse, HttpResponseNotFound def not_found(request): ) 或 return ...

  8. django view function

    view function 的几种返回值 return HttpResponse(html) return HttpResponseNotFound(html) raise Http404(" ...

  9. Django View类的解析

    class View(object): """ Intentionally simple parent class for all views. Only impleme ...

随机推荐

  1. macOS安装「oh my zsh」

    目前常用的 Linux 系统和 OS X 系统的默认 Shell 都是 bash,但是真正强大的 Shell 是深藏不露的 zsh, 这货绝对是马车中的跑车,跑车中的飞行车,史称『终极 Shell』, ...

  2. VisualSVN Server和Subversion的联系

    VisualSVN Server是只能在Windows平台上搭建的SVN服务器,内核使用的是Subversion,做了整合:apache+subversion+WMI(实现操作界面等). 用这个的好处 ...

  3. Windows Directory ACL Security Check By ACL Baseline

    catalog . Windows NTFS ACL(MAC) Permission . How the System Uses ACLs . 服务器不安全ACL配置带来的攻击向量 . NTFS AC ...

  4. duxcms SQL Injection In /admin/module/loginMod.class.php

    目录 . 漏洞描述 . 漏洞触发条件 . 漏洞影响范围 . 漏洞代码分析 . 防御方法 . 攻防思考 1. 漏洞描述 duxcms是一款采用PHP开发,基于HMVC规则开发适合中小企业.公司.新闻.个 ...

  5. 净捡软柿子捏--jQuery

    恩现在是在学习阶段,所以还只是一个小小的搬运工, 大部分参考自 http://www.w3school.com.cn/ 和http://www.zhangxinxu.com/ 超级好的两个学习网站,因 ...

  6. Beta版本冲刺第一天 12.5

    一.站立式会议照片: 二.项目燃尽图: 三.项目进展: 成 员 前段时间完成任务 今天完成任务 明天要做任务 问题困难 心得体会 胡泽善 对Alpha版本的分析总结,学习新技术,对Beta版本的讨论规 ...

  7. HD1599 find the mincost route(floyd + 最小环)

    题目链接 题意:求最小环 第一反应时floyd判断,但是涉及到最少3个点,然后就不会了,又想的是 双联通分量,这个不知道为什么不对. Floyd 判断 最小环 #include <iostrea ...

  8. 深入JVM-有关String的内存泄漏

    什么是内存泄漏?所谓内存泄漏,就是由于疏忽或错误造成程序未能释放已经不再使用的内存的情况,他并不是说物理内存消失了,而是指由于不再使用的对象占据了内存不被释放,而导致可用内存不断减小,最终有可能导致内 ...

  9. Java 毫秒转换为日期类型、日期转换为毫秒

    /毫秒转换为日期 public static void main(String[] args) { DateFormat formatter = new SimpleDateFormat(" ...

  10. Bootstrap基本类和组件学习二

    一.联系方式:(自带鼠标的移动动画) 1.头文件CSS <link rel="shortcut icon" href="favicon.ico"> ...