Giriş
Merhaba Python meraklıları! Bugünkü yazımızda, Python kullanarak nasıl görsel yükleme işlemi gerçekleştirebileceğimizi inceleyeceğiz. Görsellerin yüklenmesi, web uygulamalarında sıkça karşılaşılan bir görevdir. Kullanıcıların belgeler, profil resimleri veya diğer medya dosyalarını yüklemelerine olanak tanımak, çoğu modern internet uygulamasının temel bileşenlerinden biridir.
Bu makalede, Flask web çerçevesi ile bir görsel yükleme uygulaması geliştireceğiz. Flask, hafif yapısı ve kolay kullanımı sayesinde özellikle Python geliştiricileri arasında oldukça popülerdir. İster yeni başlayan bir geliştirici olun, ister deneyimli bir yazılımcı, bu adım adım rehber sizlere yardımcı olacaktır.
Flask ile İlk Adımlar
Flask ile görsel yükleme uygulaması geliştirmeye başlamadan önce, sistemimizde Flask kütüphanesinin yüklü olduğundan emin olmalıyız. Eğer henüz Flask’ı yüklemediyseniz, aşağıdaki komutu terminalinizde çalıştırarak kolayca yükleyebilirsiniz:
pip install Flask
Flask’ı yükledikten sonra, basit bir Flask uygulaması oluşturarak başlayalım. Öncelikle bir Python dosyası oluşturun ve adını app.py
koyun. Ardından aşağıdaki kodları bu dosyaya ekleyin:
from flask import Flask, request, render_template
app = Flask(__name__)
@app.route('/')
def index():
return render_template('index.html')
if __name__ == '__main__':
app.run(debug=True)
Bu kod parçacığı, basit bir Flask uygulaması başlatır. Uygulamamızın anasayfasında, bir görsel yükleme formu olacak. Ancak şimdilik, sadece ana sayfayı oluşturan bir index.html
dosyası oluşturacağız.
HTML Formu Oluşturma
Görsel yükleme işlemini gerçekleştirmek için bir HTML formuna ihtiyacımız var. Bu form, kullanıcıların bilgisayarlarından görsellerini seçip yüklemelerine olanak tanıyacak. templates
adlı bir klasör oluşturun ve bu klasörde index.html
dosyasını oluşturun. Ardından aşağıdaki HTML kodunu ekleyin:
<!DOCTYPE html>
<html lang="tr">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Görsel Yükleme</title>
</head>
<body>
<h1>Görsel Yükleme Formu</h1>
<form action="/upload" method="post" enctype="multipart/form-data">
<label for="file">Görsel Seçin:
Bu form, kullanıcıdan bir dosya seçmesini ve yükle butonuna basarak görseli yüklemesini ister. Şimdi, yapmamız gereken bir sonraki adım, yükleme işlemini gerçekleştirecek bir rota eklemektir.
Görsel Yükleme Rotaları
HTML formumuz hazır olduğuna göre, kullanıcıların seçtiği görseli alıp sunucuda kaydedecek bir rota oluşturalım. Flask uygulamamıza bir /upload
rotası ekleyerek görsel yükleme işlemini gerçekleştirebiliriz. app.py
dosyasını açın ve aşağıdaki kodu ekleyin:
import os
from flask import Flask, request, render_template, redirect, url_for, flash
UPLOAD_FOLDER = 'uploads/'
ALLOWED_EXTENSIONS = {'png', 'jpg', 'jpeg', 'gif'}
app.config['UPLOAD_FOLDER'] = UPLOAD_FOLDER
def allowed_file(filename):
return '.' in filename and \
filename.rsplit('.', 1)[1].lower() in ALLOWED_EXTENSIONS
@app.route('/upload', methods=['POST'])
def upload_file():
if 'file' not in request.files:
flash('No file part')
return redirect(request.url)
file = request.files['file']
if file.filename == '':
flash('No selected file')
return redirect(request.url)
if file and allowed_file(file.filename):
filename = secure_filename(file.filename)
file.save(os.path.join(app.config['UPLOAD_FOLDER'], filename))
return 'Görsel başarıyla yüklendi!'
else:
flash('Geçersiz dosya uzantısı')
return redirect(request.url)
Bu kod parçası, gelen file dosyasını alır ve geçerli bir uzantıya sahip olup olmadığını kontrol eder. Eğer uyumlu bir dosya ise, belirtilen uploads
klasörüne kaydeder. Eğer yükleme sırasında herhangi bir sorun olursa kullanıcıya uygun bir mesaj ileten bir sistem de kurmuş oluyoruz.
Dosya Yükleme Klasörü Oluşturma
Kullanıcıların yüklediği görsellerin saklanacağı bir klasör oluşturalım. Proje dizininizde uploads
adlı bir klasör oluşturun. Bu klasör, kullanıcıların yüklediği dosyaların saklandığı yer olacak. Flask uygulaması çalıştırıldığında, bu klasörde görsel dosyalarını görebileceğiz.
Bu klasör yoksa, görsel yükleme işlemi sırasında hata alırsınız. Flask uygulamasını başlatmadan önce bu klasörün var olduğundan emin olun. Klasör oluşturma işlemi, işletim sistemine bağlı olarak değişebilir, fakat çoğu durumda bunu basit bir sağ tıklama veya terminal komutlarıyla gerçekleştirebilirsiniz.
Uygulamayı Çalıştırma
Artık uygulamamız hazır! Geriye sadece Flask uygulamasını başlatmak kaldı. Terminalinizi açın ve app.py
dosyasının bulunduğu dizine gidin. Ardından aşağıdaki komutu çalıştırın:
python app.py
Uygulama başlatıldığında, tarayıcınızda http://127.0.0.1:5000/
adresine gidin. Burada yükleme formunu göreceksiniz. Bir görsel seçip yükle butonuna bastığınızda, görüntü dosyasını başarılı bir şekilde yüklediğinizi gösterecek bir mesaj görmelisiniz!
Hata Yönetimi ve Dönüşüm Süreci
Herhangi bir web uygulaması geliştirirken hata yönetimi oldukça önemlidir. Kullanıcının belirli adımlarda hata yapmasını önlemek için önceden tanımlı kontrollerimiz olsa da, bazen beklenmedik hatalar oluşabilir. Örneğin, ağ bağlantısı sorunları veya dosyanın yüklenememesi gibi.
Form işlemi sırasında, yukarıda belirtmiş olduğumuz gibi uygun hata mesajlarını kullanıcıya sunarak, süreci daha şeffaf hale getirebiliriz. Flask, hata yönetimi için bazı yerleşik işlevler sunar; bunu kullanarak kullanıcı deneyimini iyileştirebilirsiniz. Örneğin, kullanıcı uspeklikle dosyasını yüklemişken, aynı zamanda yükleme sırasında bir hata olursa kullanıcıyı bilgilendirmek için ek mesajlar kullanabilirsiniz.
Sonuç ve Teşvik
Artık Python ile basit bir görsel yükleme uygulaması geliştirmenin temellerini öğrenmiş bulunmaktasınız. Flask ile hayata geçirdiğimiz bu projede, kullanıcıların görsellerini yüklemesine olanak tanıyan bir form oluşturmayı başardık. Bundan sonraki adım, bu uygulamayı geliştirmek ve daha fazla özellik eklemektir.
Unutmayın ki, yazılım dünyası sürekli değişiyor ve yeniliklerle dolu. Öğrenmeye ve yeni teknolojileri denemeye devam edin. Belki de bu uygulamanızın üzerine, kullanıcıların yüklediği görselleri listeleyen veya görüntüleyen bir özellik ekleyebilirsiniz. Hayal gücünüzü kullanın ve işinize yarayacak daha pek çok şey keşfedin!