django form 用法

form的主要作用:1.在html中生成表单框架,2.验证数据(实话实说,很简洁,但不实用,灵活性差)

1.首先,建好一个工程
django-admin.py startproject myblog ,
再创建个model
python manage.py startapp User,
在model里创建一些数据类型
class Users(models.Model):
    
    uname = models.CharField(max_length=30,unique=True,verbose_name="用户名")
    upet = models.CharField(max_length=30,verbose_name="昵称")
    upawd = models.CharField(max_length=30,verbose_name="密码")
    email = models.EmailField(verbose_name="电子邮件")
    url = models.URLField(verbose_name="网址")
,到此,基本项目做好,开始使用form
2. 在model目录下新建forms.py
  有两种写法:
  (1)定义表单模型
class UserForm(forms.Form):
        uname = forms.CharField(max_length=100 ,label='用户名')
        email = forms.EmailField(label='电子邮件')
        upet = forms.CharField(
max_length=30 , required=False, label='昵称')  
       upawd = forms.CharField(label='密码',widget=forms.Textarea)
        url = forms.
URL Field(required=False ,label='网址')

(2)继承model
from django.forms import ModelForm
from myblog.users.models import Users
class UsersForm(ModelForm):
        class Meta:
                model = Users
                fields = ('uname','upet', 'upawd','email','url')

3.在view视图中 ,做表单验证
def contact(request):
    if request.method == 'POST': 
        form = ContactForm(request.POST) 
        if form.is_valid(): 
              username=form.cleaned_data['uname']
              usernick=form.cleaned_data['upet']
              pawd1=form.cleaned_data['upawd']
              email=form.cleaned_data['email']
              weburl=form.cleaned_data['url']
             Users(uname=username,upet=usernick,upawd=pawd1,email=email,url=weburl).save()
              return HttpResponseRedirect('/index/') 
    else:
         return render_to_response('contact.html', {'form': form,})
4.在html页面,代码超简单,这点django做的不错
<form id="your-profile" action="/contact" method="post"> 
<table class="form-table">
    <!--{{ form.as_ul }}-->                            # 这是第一种写法,在<ul> 显示表单
   <!-- {{ form.as_p }}-->                            # 这是第二种写法,在<p> 显示表单
     <!--{{ form.as_table }}-->                     # 这是第三种写法,在<table>显示表单
    {% for field in form %}                          # 这是第四种写法,以循环形式显示表单
         {{ field.label_tag }}:{{ field }} 
         {{ field.errors }}
     {% endfor %}
</table> 
<p class="submit"><input type="submit" name="submit" id="submit" class="button-primary" value="注册信息"  /></p> 
</form> 
5.在url.py中配置
(r'^contact',contact),
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值