前言
备研了,博客许久未更了,但是学期末的大作业,遇到了问题并成功解决了,不得不记录一下。
前端
<form method="post" enctype="multipart/form-data" action="/insurance/upload_result">
<input type="file" name="excel_file">
<button type="submit">导入</button>
</form>
传数据表单必不可少
input用于文件类的上传,相当于先让前端收到这份文件
button用于表单的发送(submit 提交很好理解)
表单中的 action=“/insurance/upload_result”>
表明我们要将文件数据发送给谁接受。
那么我们后端代码如下:
后端
主项目的urls.py:
from django.contrib import admin
from django.urls import path, include
from . import views
urlpatterns = [
path('vision_system', views.vision_system_html, name='vision_system'),
path("insurance/", include("insurance.urls")), # 将insurance相关的路由都自动发往insurance这个APP中进行进一步匹配
path("application01/", include("application01.urls"))
]
insurance这个APP下的
urls.py:
from django.urls import path
from . import views
urlpatterns = [
# http://127.0.0.1:8000/insurance/insurance
path("upload_result", views.upload_result),
]
需要正确配置好我们发送请求的路由,不然接收不到。
ps:当你在APP里写路由时,一定千万必须不能忘记把APP那层加上(指在前端表单的action中)
因为我这里是在APP接受post,因此虽然路径是upload_result
但是实际上的访问路径需要加上APP那层,就是:/insurance/upload_result
然后我们视图函数配置好我们接受和处理送来的数据的函数即可:
def upload_result(request):
if request.method == 'POST':
try:
f = request.FILES.get('excel_file')
excel_type = f.name.split('.')[1]
if excel_type in ['xlsx', 'xls']:
user_data = pd.read_excel(f)
print(user_data)
except:
error = '解析excel文件或者数据插入错误'
return render(request, 'index.html', {"error": error})
return render(request,'index.html')
可以看到后台成功接收到了文件,并且打印出来了
状态码200也表示成功传输了。文章来源:https://www.toymoban.com/news/detail-495496.html
因此,路由配置一定要注意!!!尤其是在APP中别忘记APP那层,同时最后多了/也是不行的,文章来源地址https://www.toymoban.com/news/detail-495496.html
到了这里,关于使用django的APP在前端上传excel通过post传给后端读取并打印的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!