Django 表单处理(一)

转载 2013年12月05日 07:53:44
Django Form 主要有两种处理方式:
1.直接继承 forms.Form 
2.直接利用已有的model中的class,从ModelForm中继承.

这两种方式,都涉及到如下几个问题:
1.django form 显示中文字段名
2.django form field 的样式控制
3.django form 的数据校验

4.django form 数据提交后的处理.

class TestForm(forms.Form):
    #==label 用来控制 form 字段的 中文显示,widget 可以控制其他属性,比如样式等。
    yourname = forms.CharField(label='名称',max_length=50,widget=forms.TextInput(attrs={'style':'border:1px solid #ccc;'}))
    website = forms.URLField(required=False,widget=forms.TextInput(attrs={'class':'myclass'}))
    email = forms.EmailField(label='邮箱')
    content = forms.CharField(label='内容',widget=forms.Textarea(attrs={'cols':'80','rows':'5'}))
    
def add_comment(request):
    context={}
    context.update(csrf(request))
    form = TestForm()
    context['form']=form
    return render_to_response('form.html',context)

def save_comment(request):
    form = TestForm(request.POST)
    #===校验form 中的数据,并处理.
    if form.is_valid() :
        print 'successs'
        yourname = form.cleaned_data['yourname']
        website = form.cleaned_data['website']
        email = form.cleaned_data['email']
        content = form.cleaned_data['content']
        #===想干嘛就干嘛,可以插入数据库等
        print 'get information:',yourname,email,website,content
        
        return render_to_response('form.html',locals())
    else:
        print 'error'
        return render_to_response('form.html',locals())


form.html 模板如下:
程序代码 程序代码

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
        <title>Add contact</title>
    </head>
    <body>
    <div><h2> 直接forms.Form 方式 </h2></div>
        {% if form.errors %}
        <p style="color: red;">
            Please correct the error{{ form.errors|pluralize }} below.
        </p>
        {% endif %}        
        
        <form method="POST" action="/save_contact/">
            {% csrf_token %}
            <table>
                {{form.as_table}}
            </table>
            <input type="submit" value="submit"/>
        </form>
    </body>
</html>

相关文章推荐

django 1.8 官方文档翻译: 3-4-3 使用基于类的视图处理表单

使用基于类的视图处理表单表单的处理通常有3 个步骤: 初始的的GET (空白或预填充的表单) 带有非法数据的POST(通常重新显示表单和错误信息) 带有合法数据的POST(处理数据并重定向) 你自己实...

django表单处理(二)--数据验证

上一篇讲到最简单的表单处理,就将输入的字符串输出了。 这么简单的表单处理可不行,接下来我们以一个用户注册的例子说明怎么验证数据。 验证数据要用到django.forms模块。 首先我们在temp...

django框架从零开始_008_页面元素 表单处理

参考:https://docs.djangoproject.com/en/1.9/intro/tutorial04/ 我们现在来练习更多的views相关的表单处理方式。下面来更新一下polls/d...

Django表单处理

Django是一个基于python的web框架,这里简单的介绍一下django的表单处理。当然,也会介绍下django的简单的入门。总之,看这篇不需要任何的入门知识,零起步即可。 假设已经安装好了dj...
  • xia7139
  • xia7139
  • 2013年10月18日 19:43
  • 4190

Python Django基础教程(五)(表单)

Django版本:1.11 操作系统:Windows Python:3.5Django表单 表单的意思就是通常我们在网页上看到用户注册,用户登录这类型界面,基本上都输入信息,然后点击确定。这...

Django中文官方版08-创建简单表单

注:表单传递方式类似jsp+servlet 1.更新polls/templates/polls/detail.html内容 输入: h1>{{ question.question_text }}h1...

django中搜索表单

http://www.qwolf.com/?p=162   1.搜索 (1) 在URLconf (mysite.urls )添加搜索视图。 (r’^search/$’,'mysite.book...

Python+Django+SAE系列教程11-----request/pose/get/表单

Python+Django+SAE系列教程11-----request/pose/get/表单
  • hemeng
  • hemeng
  • 2014年05月07日 19:09
  • 2663

Django表单

1优点 2创建一个tools APP 记得在settingpy中注册 3在tools文件中新建一个formspy文件 4在viewspy中书写index函数 5修改indexhtml 6在对应的url...

Django 表单

HTML表单是网站交互性的经典方式。 本章将介绍如何用Django对用户提交的表单数据进行处理。 HTTP 请求 HTTP协议以"请求-回复"的方式工作。客户发送请求时,可以在请求中附...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Django 表单处理(一)
举报原因:
原因补充:

(最多只允许输入30个字)