【发布时间】:2020-08-13 14:10:26
【问题描述】:
我已经使用https://www.pythoncircle.com/ 中准备的代码使用Django 导入和导出了一个excel 文件。 该代码如下:
from Django.shortcuts import render
import openpyxl
views.py file:
def index(request):
if "GET" == request.method:
return render(request, 'myapp/index.html', {})
else:
excel_file = request.FILES["excel_file"]
wb = openpyxl.load_workbook(excel_file)
worksheet = wb["Sheet1"]
print(worksheet)
excel_data = list()
for row in worksheet.iter_rows():
row_data = list()
for cell in row:
row_data.append(str(cell.value))
excel_data.append(row_data)
return render(request, 'myapp/index.html', {"excel_data":excel_data})
import xlwt
from django.http import HttpResponse
def download_excel_data(request):
response = HttpResponse(content_type='application/ms-excel')
response['Content-Disposition'] = 'attachment; filename="ThePythonDjango.xls"'
wb = xlwt.Workbook(encoding='utf-8')
ws = wb.add_sheet("sheet1")
row_num = 0
font_style = xlwt.XFStyle()
font_style.font.bold = True
columns = ['Column 1', 'Column 2', 'Column 3', 'Column 4', ]
for col_num in range(len(columns)):
ws.write(row_num, col_num, columns[col_num], font_style)
# Sheet body, remaining rows
font_style = xlwt.XFStyle()
wb.save(response)
return response
urls.py file:
from django.urls import path
from django.http import HttpResponse
from . import views
app_name = "myapp"
urlpatterns = [
path('', views.index, name='index'),
path('', views.download_excel_data, name='download_excel_data'),
]
当我运行所描述的代码时,只执行索引函数。而当我将 urlpatterns 更改为: urlpatterns = [
path('', views.download_excel_data, name='download_excel_data'),
path('', views.index, name='index'),
]
download_excel_data 函数被执行。 如何分别执行这两个功能? 提前致谢
【问题讨论】:
标签: django python-3.x django-models django-views django-urls