django下Form表单的使用

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了django下Form表单的使用相关的知识,希望对你有一定的参考价值。

一、什么是Form?什么是Django Form?
django表单系统中,所有的表单类都作为django.forms.Form的子类创建,包括ModelForm
关于django的表单系统,主要分两种

基于django.forms.Form:所有表单类的父类
基于django.forms.ModelForm:可以和模型类绑定的Form

实例:
实现添加出版社信息的功能

二、不使用Django Form的情况(原生的写html实现表单提交)

add_publisher.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>添加出版社信息</title>
</head>
<body>
<form action="{% url ‘add_publisher‘ %}" method="post">
{% csrf_token %}
名称:<input type="text" name="name"><br>
地址:<input type="text" name="address"><br>
城市:<input type="text" name="city"><br>
省份:<input type="text" name="state_province"><br>
国家:<input type="text" name="country"><br>
网址:<input type="text" name="website"><br>
<input type="submit" name="添加"><br>
</body>
</html>


views中的控制语句:
def add_publisher(request):
if request.method == "POST":
#如果为post提交,去接收用户提交过来的数据
name = request.POST[‘name‘]
address = request.POST[‘address‘]
city = request.POST[‘city‘]
state_province = request.POST[‘state_province‘]
country = request.POST[‘country‘]
website = request.POST[‘website‘]
Publisher.objects.create(
name=name,
address=address,
city=city,
state_province=state_province,
website=website,
)
return HttpResponse("添加出版社信息成功")
else:
return render(request,‘add_publisher.html‘,locals())

 

 

三、使用Form的情况
四、使用ModelForm的情况

总结:
使用Django中的Form可以大大简化代码,常用的表单功能特性都整合到了Form中,而ModelForm可以和Model进行绑定,更进一步简化操作

查看forms相关资料:
https://docs.djangoproject.com/en/1.9/ref/forms/api/
https://docs.djangoproject.com/en/1.9/ref/forms/fields/

以上是关于django下Form表单的使用的主要内容,如果未能解决你的问题,请参考以下文章

Django框架 之 form表单

Django使用普通表单Form以及modelForm操作数据库方式总结

form表单,django的form表单,

Django框架基础之Form组件

11_django中表单的使用流程

会话保持及Form表单--Form表单