我正在开发一个网站,该网站将您所在的城市和地区以及您想吃的食物作为输入。然后,它会向您显示您所在地区提供您想要的食物的所有餐厅的列表。 我的网站通过 Excel 文件获取所有餐厅的列表(来自管理员)。 我现在面临的问题是我无法通过pandas读取Excel文件。
我的
views.py
文件如下:
class Addcity(View):
def post(self, request, *args, **kwargs):
file_name= request.POST.get('FileName')
#some extra lines of code
df = pd.read_excel(file_name,names=["name","rating","distance"])
print(df)
return render(request, 'appmanager/addcity.html')
目前,每当我上传文件时,它都会显示错误(不存在这样的文件),我什至尝试将我的文件与我的
views.py
文件保存在同一目录中,但仍然不起作用。
我的
addcity.html
文件如下:
{% extends 'appmanager/base.html' %}
{% block content %}
<div class="container mb-5">
<div class="row justify-content-center mt-1">
<div class="card col-md-5 col-sm-12 p-4 text-center">
<form method="POST" action = "{% url 'welcome' %}" >
{% csrf_token %}
<div class="form-group">
<label for="FileName" class="form-label">Upload a file</label>
<input class="form-control" type="file" name="FileName" />
</div>
<button type="submit" class="btn btn-primary mb-2">Enter</button>
</form>
</div>
</div>
</div>
{% endblock content %}
这里任何可以帮助我解决问题的人,任何帮助,无论多小,都将不胜感激。 问候。
基于上面给出的答案,您可以通过创建 django 表单来完成此操作。请按照以下步骤操作:
创建一个
forms.py
并创建一个表单。使用以下代码作为参考:
from django import forms
class Mynewform(forms.Form):
Myname= forms.CharField(label='Enter your name')
Myage= forms.CharField(label='Enter your Age')
Form_file = forms.FileField(label='choose a file')
您可以通过在您的
Post request
中添加以下代码来读取Excel文件。
from forms import Mynewform
form = Mynewform(request.POST,request.FILES)
if form.is_valid():
name = form.cleaned_data['Myname']
age = form.cleaned_data['Myage']
df = pd.read_excel(request.FILES['Form_file'], names=[Your Column names])
最后,将以下代码段添加到您的 HTML 文件中:
<form action="{% url 'viewfile_url' %}" method="post" enctype="multipart/form-data">
{% csrf_token %}
<table>
{{ form.as_table }}
</table>
<input type="submit" value="Submit">
</form>
尝试查看
request.FILES['FileName']
这是关于上传文件的 Django 文档,它可能对你有帮助
https://docs.djangoproject.com/en/4.1/topics/http/file-uploads/