Python 在Django中上载和下载excel文件
我想创建一个网络框架,我想上传excel文件,然后保存和下载相同的excel文件。如果同一个excel文件在下载时被上传2次或3次以上,该文件是否应该用一些sumber或其他名称命名?有了下载按钮,我该怎么做 我写了上传代码,但我不知道如何继续下载部分可以有人帮助吗 Views.pyPython 在Django中上载和下载excel文件,python,django,download,upload,Python,Django,Download,Upload,我想创建一个网络框架,我想上传excel文件,然后保存和下载相同的excel文件。如果同一个excel文件在下载时被上传2次或3次以上,该文件是否应该用一些sumber或其他名称命名?有了下载按钮,我该怎么做 我写了上传代码,但我不知道如何继续下载部分可以有人帮助吗 Views.py from django.shortcuts import render import openpyxl import settings def index(request): if "GET" == re
from django.shortcuts import render
import openpyxl
import settings
def index(request):
if "GET" == request.method:
return render(request, 'myapp/index.html', {})
else:
excel_file = request.FILES["excel_file"]
# you may put validations here to check extension or file size
wb = openpyxl.load_workbook(excel_file)
# getting all sheets
sheets = wb.sheetnames
print(sheets)
# getting a particular sheet
worksheet = wb["Sheet1"]
print(worksheet)
# getting active sheet
active_sheet = wb.active
print(active_sheet)
# reading a cell
print(worksheet["A1"].value)
excel_data = list()
# iterating over the rows and
# getting value from each cell in row
for row in worksheet.iter_rows():
row_data = list()
for cell in row:
row_data.append(str(cell.value))
print(cell.value)
excel_data.append(row_data)
return render(request, 'myapp/index.html', {"excel_data":excel_data})
html
<html>
<head>
<title>
Excel file upload and processing : Django Example : ThePythonDjango.Com
</title>
</head>
<body style="margin-top: 30px;margin-left: 30px;">
<form action="{% url "myapp:index" %}" method="post" enctype="multipart/form-data">
{% csrf_token %}
<input type="file"
title="Upload excel file"
name="excel_file"
style="border: 1px solid black; padding: 5px;"
required="required">
<p>
<input type="submit"
value="Upload"
style="border: 1px solid green; padding:5px; border-radius: 2px; cursor: pointer;">
</form>
<p></p>
<hr>
{% for row in excel_data %}
{% for cell in row %}
{{ cell }}
{% endfor %}
<br>
{% endfor %}
</body>
</html>
当同一个文件被上传多次时,新文件将被命名为扩展号或随机字符串。你可以调整它 有两种方法可以使文件可供下载:
from django.contrib import admin
from django.urls import path, include
urlpatterns = [
path('admin/', admin.site.urls),
path('', include('myapp.urls', namespace="myapp")),
]