使用django的APP在前端上传excel通过post传给后端读取并打印

文章讲述了在Django框架下,如何实现前端文件上传并通过后端进行处理的步骤。前端使用表单提交文件,后端通过配置urls.py来接收请求,并在视图函数中读取并处理Excel文件。重点强调了路由配置的准确性对功能实现的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

文章目录

前言

备研了,博客许久未更了,但是学期末的大作业,遇到了问题并成功解决了,不得不记录一下。

前端

<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也表示成功传输了。

因此,路由配置一定要注意!!!尤其是在APP中别忘记APP那层,同时最后多了/也是不行的,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Icy Hunter

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值