Django表单
Posted lalavender
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 异常。
(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_length
和 min_length
设定初始值:在form类中: initial 参数
自定义验证规则:Django 的表单系统会自动查找名称以 clean_ 开头、以字段名结尾的方法。如果存在这样的方法,在验证过程中调用。可以在表单类中自定义方法。
指定标注:指定label参数
自定义表单外观:在模板中,每个字段使用的控件( <input type="text"> 、 <select> 、 <textarea>
,等等)可以使用 {{form.fieldname }} 单独渲染,而各个字段上的错误可以通过 {{ form.fieldname.errors }} 获取。
以上是关于Django表单的主要内容,如果未能解决你的问题,请参考以下文章
django.core.exceptions.ImproperlyConfigured: Requested setting DEFAULT_INDEX_TABLESPACE的解决办法(转)(代码片段
django.core.exceptions.ImproperlyConfigured: Requested setting DEFAULT_INDEX_TABLESPACE的解决办法(转)(代码片段
SpringBoot中表单提交报错“Content type ‘application/x-www-form-urlencoded;charset=UTF-8‘ not supported“(代码片段