1、csv文件定义
2、python中生成csv文件
实操:
import csv
with open('test_csv.csv', 'w', newline='') as csvfile:
writer = csv.writer(csvfile)
writer.writerow(['a', 'b', 'c'])
writer.writerow(['d', 'e'])
3、csv文件下载
4、练习题
views.py中:
def make_page_csv(request):
all_data = ['a', 'b', 'c', 'd', 'e']
page_num = request.GET.get('page', 1)
paginator = Paginator(all_data, 2)
current_page = paginator.page(int(page_num))
response = HttpResponse(content_type='text/csv')
response['Content-Disposition'] = 'attachment;filename="page-%s.csv"'%(page_num)
writer = csv.writer(response)
for i in current_page:
writer.writerow([i])
return response
前端页面中:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>分页</title>
</head>
<body>
<a href="/make_page_csv?page={{ current_page.number }}">下载csv文件</a>
{% for p in current_page %}
<p>
{{ p }}
</p>
{% endfor %}
{% if current_page.has_previous %}
<a href="/test_page?page={{ current_page.previous_page_number }}">上一页</a>
{% else %}
首页
{% endif %}
{% for p_num in paginator.page_range %}
{% if p_num == current_page.number %}
{{ p_num }}
{% else %}
<a href="/test_page?page={{ p_num }}">{{ p_num }}</a>
{% endif %}
{% endfor %}
{% if current_page.has_next %}
<a href="/test_page?page={{ current_page.next_page_number }}">下一页</a>
{% else %}
尾页
{% endif %}
</body>
</html>