码迷,mamicode.com
首页 > 其他好文 > 详细

Django book 笔记---Form表单

时间:2015-08-25 17:03:33      阅读:199      评论:0      收藏:0      [点我收藏+]

标签:django form

    先看下下面这个简单的方法:
from django.http import HttpResponse

def hello(request):
    return HttpResponse("Hello world")
    
从这个request中我们可以得到很多信息


    request.META 是一个Python字典,包含了所有本次HTTP请求的Header信息,比如用户IP地址和用户Agent(通常是浏览器的名称和版本号)。 注意,Header信息的完整列表取决于用户所发送的Header信息和服务器端设置的Header信息。 这个字典中几个常见的键值有:
    HTTP_REFERER,进站前链接网页,如果有的话。 (请注意,它是REFERRER的笔误。)
    HTTP_USER_AGENT,用户浏览器的user-agent字符串,如果有的话。 例如:"Mozilla/5.0 (X11; U; Linux i686; fr-FR; rv:1.8.1.17) Gecko/20080829 Firefox/2.0.0.17" .
    REMOTE_ADDR 客户端IP,如:"12.345.67.89" 。(如果申请是经过代理服务器的话,那么它可能是以逗号分割的多个IP地址,如:"12.345.67.89,23.456.78.90" 。)
    使用get方法来访问一个可能不存在的键值 
    ua = request.META.get(‘HTTP_USER_AGENT‘, ‘unknown‘)

    使用GET方法的数据是通过查询字符串的方式传递的(例如/search/?q=django),所以我们可以使用requet.GET来获取这些数据:request.GET[‘q‘]




创建自己的Form类:


>>> from contact.forms import ContactForm
>>> f = ContactForm()
>>> print f
<tr><th><label for="id_subject">Subject:</label></th><td><input type="text" name="subject" id="id_subject" /></td></tr>
<tr><th><label for="id_email">Email:</label></th><td><input type="text" name="email" id="id_email" /></td></tr>
<tr><th><label for="id_message">Message:</label></th><td><input type="text" name="message" id="id_message" /></td></tr>

默认输出是table格式,我们还可以输出ul、p格式
print f.as_ul()
print f.as_p()

创建一个Form
>>> f = ContactForm({‘subject‘: ‘Hello‘, ‘email‘: ‘adrian@example.com‘, ‘message‘: ‘Nice site!‘})
>>> f.is_bound
True
>>> f.is_valid()    验证数据是否合法
True
查看Form的错误信息:
>>> f = ContactForm({‘subject‘: ‘Hello‘, ‘message‘: ‘‘})
>>> f[‘message‘].errors
[u‘This field is required.‘]
>>> f[‘subject‘].errors
[]
>>> f[‘email‘].errors
[]


清理数据:
>>> f.cleaned_data
{message‘: uNice site!, email: uadrian@example.com, subject: uHello}







本文出自 “leboit” 博客,谢绝转载!

Django book 笔记---Form表单

标签:django form

原文地址:http://leboit.blog.51cto.com/1465210/1688041

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!