Django Framework ile Dosya Yükleme ve İndirme
Django Framework ile Dosya Yükleme ve İndirme
Django, güçlü yapısı ve modüler mimarisi ile web uygulama geliştirme süreçlerinde öne çıkan bir Python framework’üdür. Django framework ile dosya yükleme (file upload) ve indirme (file download) işlemleri, birçok projede ihtiyaç duyulan temel fonksiyonlardandır. Bu makalede, Django'da dosya yükleme ve indirme işlemlerinin nasıl kolayca ve güvenli biçimde gerçekleştirileceğine dair hem teknik detaylara hem de uygulama örneklerine yer vereceğiz.
Django'da Dosya Yükleme Adımları
Django framework ile dosya yükleyebilmek için öncelikle model, form ve view yapılarını uygun şekilde hazır hale getirmek gerekir. Modelinizde bir FileField veya ImageField tanımlayarak başlayabilirsiniz. Ardından, ilgili formu oluşturup, view fonksiyonunu ile dosyaların kaydedilmesini sağlamalısınız.
Model ile Dosya Alanı Oluşturma
from django.db import models
class Document(models.Model):
title = models.CharField(max_length=100)
file = models.FileField(upload_to='uploads/')
def __str__(self):
return self.title
Form ile Dosya Yükleme Alanı
from django import forms
from .models import Document
class DocumentForm(forms.ModelForm):
class Meta:
model = Document
fields = ('title', 'file',)
View ile Dosya Kayıt İşlemi
from django.shortcuts import render, redirect
from .forms import DocumentForm
def upload_file(request):
if request.method == 'POST':
form = DocumentForm(request.POST, request.FILES)
if form.is_valid():
form.save()
return redirect('success')
else:
form = DocumentForm()
return render(request, 'upload.html', {'form': form})
HTML'de Dosya Yükleme Formu
<form method="post" enctype="multipart/form-data">
{% csrf_token %}
{{ form.as_p }}
<button type="submit">Yükle</button>
</form>
Django'da Dosya İndirme Nasıl Yapılır?
Django framework ile dosya indirme işlemi için genellikle bir view fonksiyonu ve FileResponse veya HttpResponse kullanılır. Kullanıcıya ilgili dosyanın indirilmesi için doğrudan bir bağlantı sunulabilir. Bu işlemlerde dosya yolları ve erişim izinlerine dikkat etmek önemlidir.
Basit Bir Dosya İndirme View'i
from django.http import FileResponse, Http404
import os
from django.conf import settings
def download_file(request, filename):
file_path = os.path.join(settings.MEDIA_ROOT, 'uploads', filename)
if os.path.exists(file_path):
return FileResponse(open(file_path, 'rb'), as_attachment=True, filename=filename)
else:
raise Http404("Dosya bulunamadı.")
Dosya İndirme Bağlantısı Verme (HTML)
<a href="/download/filename.txt">Dosyayı İndir</a>
Sonuç
Django framework ile dosya yükleme ve indirme işlemleri modern web uygulamalarında vazgeçilmezdir. Hem model, form hem de view katmanlarında yapılan küçük ayarlamalarla hızlı ve güvenli bir dosya yönetim sistemi oluşturabilirsiniz. Django'nun sunduğu FileField, FileResponse gibi özellikler ile yükleme ve indirme işlemlerini esnek ve profesyonel biçimde yönetebilirsiniz.

Yorum Gönder