Django表单

Httprequest对象的方法和属性:属性/方法

| 属性/方法 | 说明 | 示例 |

| :--- | :--- | :--- |

| request.path | 完整的路径,不含域名,但是包含前导斜线| “/hello/”|

| request.get_host() | 主机名(即通常所说的“域名”) |“127.0.0.1:8000”或“www.exam-ple.com” |

| request.get_full_path() | 包含查询字符串(如果有的话)的路径|“/hello/?print=true”|

| request.is_secure() |通过 HTTPS 访问时为 True ,否则为 False| True 或 False |

  • request.META 的值是一个 Python 字典,包含请求的所有 HTTP 首部,

1.HTTP_REFERER :入站前的 URL(可能没有)。

2.HTTP_USER_AGENT :浏览器的用户代理(可能没有)。

3.REMOTE_ADDR :客户端的 IP 地址,

注意,因为 request.META 是个普通的 Python 字典,所以尝试访问不存在的键时,抛出 KeyError 异常。

扫描二维码关注公众号,回复: 5962924 查看本文章

(HTTP 首部是外部数据,即由用户的浏览器提交,因此不能完全相信,当某个首部为空或不存在时,应该让应用程序优雅失败。)为了处理未定义的键,应该使用 try / except 子句,或者 get() 方法:

  • HttpRequest 对象还有两个属性包含用户提交的信息: request.GET 和 request.POST 。这两个属性的值都是类似字典的对象,分别用于获取 GET 和 POST 数据。 POST 数据一般由 HTML表单提交,而 GET 数据既可以来自表单,也可以来自页面 URL 中的查询字符串。

  • action="" 的意思是,“把表单提交到与当前页面相同的 URL”。

新建form.py,创建表单类:


from django import forms

class ContactForm(forms.Form):

subject = forms.CharField()

email = forms.EmailField(required=False)

message = forms.CharField()

定义的form类:

1.能够转化成html文档

2.能够进行验证

3.is_valid()判断数据是否有效

4.cleaned_data 属性,它的值是一个字典,存储着“清理后的”提交数据。Django 的表单框架不仅验证数据,还会清理数据,把值转换成合适的 Python 类型:

改变字段的渲染方式: widget 参数

设定长度:max_lengthmin_length

设定初始值:在form类中: initial 参数

自定义验证规则:Django 的表单系统会自动查找名称以 clean_ 开头、以字段名结尾的方法。如果存在这样的方法,在验证过程中调用。可以在表单类中自定义方法。

指定标注:指定label参数

自定义表单外观:在模板中,每个字段使用的控件( <input type="text"> 、 <select> 、 <textarea>,等等)可以使用 {{form.fieldname }} 单独渲染,而各个字段上的错误可以通过 {{ form.fieldname.errors }} 获取。

猜你喜欢

转载自www.cnblogs.com/lalavender/p/10744896.html
今日推荐