> 文章列表 > Django-Form 后端自动生成Input标签

Django-Form 后端自动生成Input标签

Django-Form 后端自动生成Input标签

目录

普通写法

 Form组件


普通写法

刚开始写的代码是这样的

user=request.post.get('user')

pwd=request.post.get('pwd')

.......

我们还需要把数据返回给前端,然后在前端的form标签中一个又一个写标签

就像这个样子

<form><Input ......><Input ......><Input .......></form>

如果只有一两个标签还好,如果有二十个标签那真的非常头大


那么我们如何在后端接收数据,自动在前端生成呢

比如此时我们在数据库里面

定义三个字段user,pwd,email,然后我们在后端进行操作

 Form组件

我们会先创建一个类

class MyForm(Form):user=forms.CharField(widget=forms.Input)pwd=form.CharField(widget=forms.Input)email=form.EmailField(widget=forms.Input)

widget是一个插件,我们写上插件之后,以后在html页面中,可以显示成Input框,这样定义完了之后,我们再实例化

form=MyForm()

的时候,我们再把form传到前端页面index.html

也就是是在写回调函数的时候这样写

def index(request):return render(request,"index.html",{"form":form})

此时在前端页面

<form>

</form>

我们本来是要一个一个手写form的,input的标签可以直接生成

<form>{{form.user}}{{form.pwd}}{{form.email}}</form>

或者

<form>{%  for field in form%}{{field}}{% endfor %}</form>

这样我们就不用自己手写html标签了