Django form

HttpRequest包含当前请求的一些信息

request.path去除域名一些URL信息/blog/ ***域名这种不可以直接暴露,可以用做变量传参***

request.get_host()获取域名 localhost:8000

request.get_full_path()获取完整的请求路径

request.is_secure()是否通过了HTTP验证,通过返回True,不通过返回False

request.META包含header和user_Agent等信息,其中header是用户的浏览器所提交的,不值得信息,要包裹try-except代码块

HTTP_USER_AGENT

request.GET request.POST 里面也有get() key() value()方法,都是类字典对象

contact.html body部分
<form action="/contact" method="post">
    <p>Subject:<input type="text" name="subject"></p>
    <p>You-email:<input type="text" name="email"></p>
    <p>Message:<textarea name="meassage" cols="50" rows="20"></textarea></p>
{#    <p><input type="submit" value="Submit"></p>#}
</form>
<form action="",method="post">
    <table>
        {{ form.as_table }}
    </table>
    <input type="submit" value="Submit">提交
</form>
#说明第二个form和和第一个URL指向的是同一个,这个页面绑定了两个指向这个页面的view函数,第一个在URL.py里面指定了url第二个也就不用了

下面,说一说django的forms类

forms.Form表单类建立一个表单

class contact_us(forms.Form):
    subject=forms.CharField()
    email=forms.EmailField(required=False)
    message=forms.CharField()
#在哪里写无所谓,可以和实例的方法放在一起,省的import

#表单验证的方法,简单的前面有一个contact是直接从POST里面拿出来的,urls.py已经定义好了,因此不必再定义
#forms有好多种属性和方法,是一个dictionary....
def contact_re(request):
    if request.method=='POST':
        form=contact_us(request.POST)
        if form.is_valid():
            cd=form.cleaned_data
            send_mail(cd['subject'],cd['email'],cd.get('email','********@163.com'),['**********@163.com'],)
            return HttpResponseRedirect('/contact/thanks')
    else:
        form=contact_us()
        return render_to_response('contact_form.html',{'form':form})

属性或是方法有

f = ContactForm({'subject': 'Hello', 'email': 'adrian@example.com', 'message': 'Nice site!'})
一旦对form赋值就相当于
f.is_bound<-True
f.is_valid 是否合法,意思是该输入的东西有没有被赋值,required=False,就是不必要赋值
#可以逐一查找每个字段的错误消息
f['subject'].errors,或者查看所有的errors信息,f.errors
#如果被验证最终是合法的会有个cleaned_data属性
f.cleaned_data
#使属性变成复数形式....嗯...就是变成第三人称单数的意思..嗯..过滤器..pluralize 变成***s
{% if form.errors %}
    <p><span style="color: red">Please correct the error {{ form.errors|pluralize }}below</span> </p>
{% endif %}

嗯..用Forms来提醒自己??????....

class contact_us(forms.Form):
    subject=forms.CharField(max_length=100)
    email=forms.EmailField(required=False)
    message=forms.CharField(widget=forms.Textarea)
##可以输入的最大长度和显示message是一个textarea.......

form=contact_us(
            #设置初始值
            initial={'subject':'I love this book'}
        )
#复选
#单选
city = fields.ChoiceField(
        choices=((1, '上海'), (2, '北京'),),
        widget=widgets.Select
    )
city = fields.ChoiceField(
        choices=((1, '上海'), (2, '北京'),),
        widget=widgets.RadioSelect
    )
city = fields.ChoiceField(
        #choices=((1, '上海'), (2, '北京'),),
        widget=widgets.Select(choices=((1, '上海'), (2, '北京'),),)
    )
CheckboxSelectMultiPle
单选Ratio,select多选和单选,checkbox单和多..............

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值