关闭

Django Form处理(一)

标签: Django python 学习笔记python
1192人阅读 评论(1) 收藏 举报
  1. Django Form 主要有两种处理方式:
  2. 1.直接继承 forms.Form 
  3. 2.直接利用已有的model中的class,从ModelForm中继承.

  4. 这两种方式,都涉及到如下几个问题:
  5. 1.django form 显示中文字段名
  6. 2.django form field 的样式控制
  7. 3.django form 的数据校验
  8. 4.django form 数据提交后的处理.
  9. 第一种方式:
  10. class TestForm(forms.Form):
  11.     #==label 用来控制 form 字段的 中文显示,widget 可以控制其他属性,比如样式等。
  12.     yourname = forms.CharField(label='名称',max_length=50,widget=forms.TextInput(attrs={'style':'border:1px solid #ccc;'}))
  13.     website = forms.URLField(required=False,widget=forms.TextInput(attrs={'class':'myclass'}))
  14.     email = forms.EmailField(label='邮箱')
  15.     content = forms.CharField(label='内容',widget=forms.Textarea(attrs={'cols':'80','rows':'5'}))
  16.     
  17. def add_comment(request):
  18.     context={}
  19.     context.update(csrf(request))
  20.     form = TestForm()
  21.     context['form']=form
  22.     return render_to_response('form.html',context)

  23. def save_comment(request):
  24.     form = TestForm(request.POST)
  25.     #===校验form 中的数据,并处理.
  26.     if form.is_valid() :
  27.         print 'successs'
  28.         yourname = form.cleaned_data['yourname']
  29.         website = form.cleaned_data['website']
  30.         email = form.cleaned_data['email']
  31.         content = form.cleaned_data['content']
  32.         #===想干嘛就干嘛,可以插入数据库等
  33.         print 'get information:',yourname,email,website,content
  34.         
  35.         return render_to_response('form.html',locals())
  36.     else:
  37.         print 'error'
  38.         return render_to_response('form.html',locals())
  39. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
  40. <html>
  41.     <head>
  42.         <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  43.         <title>Add contact</title>
  44.     </head>
  45.     <body>
  46.     <div><h2> 直接forms.Form 方式 </h2></div>
  47.         {% if form.errors %}
  48.         <p style="color: red;">
  49.             Please correct the error{{ form.errors|pluralize }} below.
  50.         </p>
  51.         {% endif %}        
  52.         
  53.         <form method="POST" action="/save_contact/">
  54.             {% csrf_token %}
  55.             <table>
  56.                 {{form.as_table}}
  57.             </table>
  58.             <input type="submit" value="submit"/>
  59.         </form>
  60.     </body>
  61. </html>


0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:373729次
    • 积分:9118
    • 等级:
    • 排名:第2103名
    • 原创:527篇
    • 转载:34篇
    • 译文:13篇
    • 评论:41条
    我的站点

    这里只是我的备份地方

    DCOS
    博客专栏
    文章分类