Python的django框架,做了一个前端页面,其中有一向要求提交表单,暂且总结一下流程,有不对的地方请指正:
1、在HTML页面写表单:
<form enctype="multipart/form-data" method="POST" action="{% url ‘upload‘ %}">
{% csrf_token %}
<input type="file" name="your_file"/>
<button type="submit" >Submit</button>
</form>
其中enctype="multipart/form-data"是必须的,来确保匿名上载文件的正确编码(表单中enctype="multipart/form-data"的意思,是设置表单的MIME编码。默认情况,这个编码格式是application/x-www-form-urlencoded,不能用于文件上传;只有使用了multipart/form-data,才能完整的传递文件数据,进行下面的操作.
enctype="multipart/form-data"是上传二进制数据; form里面的input的值以2进制的方式传过去),而action="{% url ‘upload‘ %}"指的是向后台某个位置提交表单数据,{% csrf_token %}时必须的,否则会出现提交表格返回403错误: CSRF verification failed. Request aborted。
2、在django框架里应用程序中的urls.py中添加代码,保证页面能找到:
url(r‘^upload/$‘, views.upload, name=‘upload‘),
其中第一个变量是一个正则表达式,第二个是对于提交到该页面的处理函数
3、在django框架里应用程序中的views.py中添加upload函数,即第二部分中的views.upload,用来处理提交的表单:
def upload(request):
return ...
至此,表单功能基本实现。