Python, web geliştirme dünyasında oldukça popüler ve güçlü bir dildir. Web uygulamaları ve siteleri geliştirmek için kullanılan framework’ler, Python'un sade ve anlaşılır yapısını kullanarak hızlı ve etkili geliştirme yapılmasını sağlar. Python'un web geliştirme için sunduğu başlıca framework’ler Django ve Flask’tir, ancak bunun dışında da birçok araç ve kütüphane bulunmaktadır.
Python ile Web Geliştirme Nasıl Yapılır?
Python ile web geliştirme, genellikle HTTP taleplerine yanıt veren sunucular ve web uygulamaları oluşturmak üzerine kurulur. Bir Python web uygulaması, kullanıcılardan gelen talepleri (GET, POST, PUT, DELETE vb.) işler, veritabanı ile etkileşime girer ve istemciye bir HTML sayfası veya JSON veri gibi bir yanıt gönderir.
Web Framework Nedir?
Web framework, web uygulamaları ve hizmetlerini daha hızlı ve güvenli bir şekilde oluşturmak için hazır araçlar, kütüphaneler ve kurallar sunan bir yazılım altyapısıdır. Python'da birçok web framework bulunur, ancak en popüler olanları şunlardır:
1. Django
Django, Python'un en popüler ve tam özellikli web framework'lerinden biridir. "Batteries included" (Tüm bileşenler dâhil) felsefesine sahiptir, yani bir web uygulaması geliştirmek için ihtiyacınız olan çoğu şeyi içerir.
- ORM (Object-Relational Mapping): Veritabanı ile çalışırken Python nesneleri kullanarak sorgular yapmanızı sağlar. Bu, SQL yazmadan veritabanı işlemleri yapmayı kolaylaştırır.
- Otomatik Admin Paneli: Django, geliştirdiğiniz uygulamalar için otomatik olarak bir yönetim paneli oluşturur. Bu panel, içerik ve kullanıcı yönetimini hızlandırır.
- Güvenlik: XSS, CSRF ve SQL enjeksiyon gibi birçok güvenlik tehdidine karşı korumalıdır.
- Kapsamlı Yapı: URL routing, form işleme, kullanıcı kimlik doğrulama gibi birçok hazır özellik sağlar.
Django ile Basit Bir Web Uygulaması Örneği:
-
Django Projesi Oluşturma:
pip install django django-admin startproject myproject cd myproject python manage.py runserver
-
Django’da Temel Uygulama (App) Oluşturma:
python manage.py startapp myapp
-
Basit Bir Görünüm (View) ve URL Tanımlama:
views.py
dosyasında basit bir fonksiyon tanımlayıp bir sayfa gösterebilirsiniz:from django.http import HttpResponse def merhaba_dunya(request): return HttpResponse("Merhaba Dünya!")
Daha sonra
urls.py
dosyasında bu fonksiyonu bir URL'ye bağlayın:from django.urls import path from .views import merhaba_dunya urlpatterns = [ path('merhaba/', merhaba_dunya), ]
-
Sunucuyu Başlatma:
python manage.py runserver
Tarayıcınızda
http://127.0.0.1:8000/merhaba/
adresine giderek "Merhaba Dünya!" mesajını görebilirsiniz.
2. Flask
Flask, Django'nun aksine, daha küçük ve minimal bir framework'tür. Özelleştirilebilirliği yüksek olduğu için daha küçük ölçekli projelerde ve API geliştirmede sıkça kullanılır. Flask'te ihtiyacınıza göre farklı bileşenler ekleyerek uygulamanızı istediğiniz şekilde yapılandırabilirsiniz.
- Esneklik: Flask, "minimal" bir framework olduğundan, size büyük bir esneklik sağlar. Projeye ihtiyacınız olan bileşenleri ekleyerek büyütebilirsiniz.
- Kapsayıcı Bir Yapı Yok: Flask, veritabanı yönetimi, kullanıcı kimlik doğrulama gibi konularda size doğrudan araçlar sağlamaz. Bu özellikleri üçüncü taraf kütüphanelerle eklemeniz gerekir.
Flask ile Basit Bir Web Uygulaması Örneği:
-
Flask Yükleme ve Proje Başlatma:
pip install Flask
Flask uygulamasını başlatmak için basit bir
app.py
dosyası oluşturun:from flask import Flask app = Flask(__name__) @app.route( '/' ) def hello_world(): return "Merhaba Dünya!" if __name__ == '__main__': app.run()
-
Sunucuyu Çalıştırma:
python app.py
Tarayıcınızda
http://127.0.0.1:5000/
adresine giderek "Merhaba Dünya!" mesajını görebilirsiniz.
3. FastAPI
FastAPI, yeni nesil bir Python web framework'üdür ve API geliştirmeye odaklanır. Hem hızlı hem de modern bir framework olduğu için giderek daha popüler hale gelmektedir.
- Hızlı: Asenkron (async) desteklediği için çok hızlıdır.
- Kolay Kullanım: Otomatik API dokümantasyonu sağlar. JSON verileriyle çalışmak için optimize edilmiştir.
- Verimlilik: Geliştiricilere hızlı geliştirme ortamı sunarken, yüksek performans sağlar.
FastAPI ile Basit Bir Uygulama:
-
FastAPI Yükleme:
pip install fastapi uvicorn
-
Basit Bir FastAPI Uygulaması:
from fastapi import FastAPI app = FastAPI() @app.get( "/" ) def read_root(): return {"Merhaba": "Dünya"}
-
Uygulamayı Çalıştırma:
uvicorn app:app --reload
Tarayıcınızda
http://127.0.0.1:8000/
adresine giderek JSON çıktısını görebilirsiniz.
4. API Geliştirme
Python, RESTful ve GraphQL API'ler geliştirmek için de mükemmel bir seçenektir. API'ler, uygulamanızın farklı istemciler (mobil uygulamalar, başka web siteleri, IoT cihazları vb.) tarafından kullanılmasına olanak tanır.
- Django REST Framework (DRF): Django ile birlikte kullanılarak hızlı bir şekilde REST API'ler geliştirebilirsiniz.
- Flask-RESTful: Flask üzerinde RESTful API'ler geliştirmek için kullanılır.
- FastAPI: Yüksek performanslı API'ler geliştirmek için FastAPI'yi kullanabilirsiniz.
Basit Bir Flask API Örneği:
from flask import Flask, jsonify, request
app = Flask(__name__)
kullanicilar = [{"id": 1, "isim": "Ali"}, {"id": 2, "isim": "Ayşe"}]
@app.route(
'/kullanicilar', methods=['GET'])
def get_users():
return jsonify(kullanicilar)
@app.route(
'/kullanici', methods=['POST'])
def add_user():
yeni_kullanici = request.json
kullanicilar.append(yeni_kullanici)
return jsonify(kullanicilar)
if __name__ == '__main__':
app.run()
5. Şablon Motorları (Template Engines)
Web uygulamalarında HTML sayfaları oluştururken şablon motorları kullanılır. Python’da Jinja2 gibi şablon motorları, dinamik HTML oluşturmanızı sağlar. Flask ve Django gibi framework'lerde bu motorlar otomatik olarak entegre edilmiştir.
6. Veritabanı ile Çalışma
Python web geliştirme süreçlerinde genellikle bir veritabanı kullanılır. Django'nun kendi ORM sistemi sayesinde SQL yazmadan veritabanı işlemleri yapabilirsiniz. Flask gibi daha küçük framework'lerde ise SQLAlchemy gibi kütüphaneler kullanarak veritabanı bağlantısı kurabilirsiniz.
Veritabanı Kütüphaneleri:
- Django ORM: Django'nun entegre edilmiş ORM yapısı ile veritabanı işlemlerini yönetmek kolaydır.
- SQLAlchemy: Flask gibi framework'lerde yaygın olarak kullanılır.
7. Güvenlik
Python framework'leri, güvenli web uygulamaları oluşturmanıza yardımcı olacak çeşitli güvenlik önlemleri sunar.
- Django: Otomatik olarak CSRF (Cross-Site Request Forgery) ve XSS (Cross-Site Scripting) saldırılarına karşı koruma sağlar.
- Flask: Güvenlik özelliklerini sağlamak için ek kütüphaneler eklemeniz gerekir.
Sonuç
Python ile web geliştirme oldukça esnek ve güçlüdür. Django, büyük ve karmaşık projeler için uygundur, Flask ise daha hafif projeler için idealdir. FastAPI gibi yeni nesil framework'