CSV and PDF
CSV and PDF
INSTALLED_APPS = [
...
'projects',
5. projects/models.py:
class Project(models.Model):
student_name = models.CharField(max_length=100)
topic = models.CharField(max_length=200)
languages_used = models.CharField(max_length=200)
duration = models.CharField(max_length=50)
def __str__(self):
return self.topic
In CMD:
6. python manage.py makemigrations
7. python manage.py migrate
8. projects/forms.py:
class ProjectForm(forms.ModelForm):
class Meta:
model = Project
9. projects/views.py
import csv
def project_create_view(request):
if request.method == 'POST':
form = ProjectForm(request.POST)
if form.is_valid():
form.save()
return redirect('project_list')
else:
form = ProjectForm()
def project_list_view(request):
projects = Project.objects.all()
def export_projects_csv(request):
response = HttpResponse(content_type='text/csv')
response['Content-Disposition'] = 'attachment; filename="projects.csv"'
writer = csv.writer(response)
projects = Project.objects.all()
return response
def export_projects_pdf(request):
response = HttpResponse(content_type='application/pdf')
p = canvas.Canvas(response)
projects = Project.objects.all()
y = 750
y -= 60
p.showPage()
p.save()
return response
10. projects/urls.py
urlpatterns = [
11. student_project/urls.py
urlpatterns = [
path('admin/', admin.site.urls),
path('projects/', include('projects.urls')),
12. projects/templates/projects
project_form.html:
<h2>New Project</h2>
<form method="post">
{% csrf_token %}
{{ form.as_p }}
<button type="submit">Save</button>
</form>
project_list.html:
<h2>Project List</h2>
<table>
<tr>
<th>Student Name</th>
<th>Topic</th>
<th>Languages Used</th>
<th>Duration</th>
</tr>
<tr>
</tr>
{% endfor %}
</table>
http://127.0.0.1:8000/projects/