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标签了