一个典型的HTML表单如下。
请输入数据:
该表单由静态HTML实现,要直接在浏览器中访问该表单,需将其放在Django项目的static文件夹中。
静态资源配置的详细内容请参考2.1.4节。
一个表单主要包括提交地址、请求方法和表单元素三个部分。
表单的action属性指定的URL为提交地址,它接收表单数据,并执行相应的处理。
表单的method属性指定请求方法,通常是GET或POST。
通常,在不改变服务器数据时用GET方法,提交的数据会显示在URL中。
要改变服务器数据时用POST方法,提交的数据封装在消息体中。
Django项目的模板文件是一个HTML文件,可在其中定义HTML表单。可通过视图将数据传递给模板,然后使用模板变量将其填充到HTML表单。
Django模板中的HTML表单典型结构如下。
{% csrf_token %}
请输入数据:
相比于前面的HTML表单,模板中多了一个{% csrf_token %}标签和一个{ { current_data }}变量。将此模板(temform.html)放在项目的templates文件夹中,以便在视图中使用。
默认情况下,Django会对所有的POST请求执行CSRF(跨站点请求伪造)保护。{% csrf_token %}标签用于获取CSRF令牌,如果没有该标签,Django会拒绝表单请求。
{ { current_data }}用于将视图传递给模板的数据插入到当前位置。