Django How to Export Data to CSV File
Export Data to CSV File No need to install dependencies. Use it if you do not need any fancy formating.
import csv
#views.py from django.shortcuts import render from django.http import HttpResponse from django.contrib.auth.models import User import csv from myapp.models import StudentForm #models.py def index(request): return render(request,"index.html") def export_users_csv(request): response = HttpResponse(content_type='text/csv') response['Content-Disposition'] = 'attachment; filename="users.csv"' writer = csv.writer(response) writer.writerow(['Username', 'First name', 'Last name', 'Email address']) users = User.objects.all().values_list('username', 'first_name', 'last_name', 'email') for user in users: writer.writerow(user) return response def export_student_csv(request): response = HttpResponse(content_type='text/csv') response['Content-Disposition'] = 'attachment; filename="student.csv"' writer = csv.writer(response) writer.writerow(['First name', 'Last name', 'Email address']) student = StudentForm.objects.all().values_list('firstname', 'lastname', 'email') for student_rs in student: writer.writerow(student_rs) return response
#urls.py from django.contrib import admin from django.urls import path from myapp import views urlpatterns = [ path('admin/', admin.site.urls), path('index/', views.index), path('export_users_csv/', views.export_users_csv), path('export_student_csv/', views.export_student_csv), ]
#models.py from django.db import models # Create your models here. class StudentForm(models.Model): firstname = models.CharField("Enter first name", max_length=50) lastname = models.CharField("Enter last name", max_length = 50) email = models.EmailField("Enter Email") bio = models.TextField(blank=True) file = models.FileField() # for creating file input class Meta: db_table = "student"
//templates/index.html <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> <title>Django How to Export Data to CSV File</title> </head> <body> <p><h2>Django How to Export Data to CSV File</h2></p> <p><h4><a href="/export_users_csv">Export all users</a></h4></p> <p><h4><a href="/export_student_csv">Export all Students</a></h4></p> </body> </html>