专业编程教程与实战项目分享平台

网站首页 > 技术文章 正文

Python 语言Django 框架的表单设计

ins518 2024-09-17 21:49:15 技术文章 23 ℃ 0 评论


1 我们为了接收用户的数据,需要在前段页面显示一个录入数据的界面,这个界面的开发就是表单设计,这部分的工作是后端开发提供给前端设计岗的源数据。

2 在Python 语言Django 框架中,后端表单开发,不用讲究美观、好看,只要把需要的数据能体现出来,逻辑结构清晰,说明文档详尽就可以,只有分工明确,技术分层清晰后期程序才好维护。

3 Django表单的结构代码,比较有矩可循,常用的就是这几种结构,可以直接拿来套用。关键还是要会灵活运用。

4 例 <form action="{% url 'polls:vote' question.id %}" method="post">
{% csrf_token %}
{% for choice in question.choice_set.all %}
<input type="radio" name="choice" id="choice{{ forloop.counter }}" value="{{ choice.id }}" />
<label for="choice{{ forloop.counter }}">{{ choice.choice_text }}</label><br />
{% endfor %}
<input type="submit" value="Vote" />
</form>

5 上面的FORM显示一系列单选按钮,按钮的值时选项的ID,按钮的名字是字符串“choice”。这意味着,当你选择了其中某个按钮,并提交表单,一个包含数据choice=# 的POST请求将被发送到指定的url,#是被选择的选项的ID,这就是HTML表单的基本概念。如果有PHP基础的朋友应该很容易理解。

Form标签的action属性和method属性应该很清楚其含义,action表示你要发送的目的url,method表示提交数据的方式,一般分为POST和GET。

forloop.counter是Django模板系统专门提供的一个变量,用来表示你当前循环的次数,一般用来给循环项目添加有序数标。在Django前端就这几个专属变量,死记住就好了。for\endfor是前端常用的一种循环。

6 由于我们发送了一个POST请求,就必须考虑一个跨域请求伪造的安全问题,简称CSRF,Django为你提供了一个简单的方法来避免这个困扰,那就是在form表单内添加一条{ % csrf_token %} 标签,标签名不可更改,固定格式,位置任意,只要是在form表单内。这个方法对form表单的提交方式方便好使,但如果是用ajax的方式提交数据,就不能用这个方法了。Python 语言Django 框架的安全性就体现在这里。

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表