
Python Flask İle Basit Web API (Backend) Geliştirme
31 Temmuz 2026
Python Sanal Ortam (Virtual Environment / venv) Kullanımı
31 Temmuz 2026Python Django, web uygulamaları geliştirmek için güçlü ve esnek bir framework'tür. Bu rehberde, sıfırdan bir proje oluşturmanın adımlarını detaylı bir şekilde inceleyeceğiz. Amacımız, temel bilgileri aktararak okuyucuların kendi projelerini başarıyla hayata geçirmelerine yardımcı olmaktır.
İçindekiler
Django Nedir ve Neden Kullanmalıyız?
Django, Python programlama diline dayanan açık kaynaklı bir web framework’üdür. 2005 yılında oluşturulan bu framework, hızlı geliştirme ve temiz, pragmatik tasarım felsefesi üzerine kurulmuştur. Django, özellikle veri odaklı web uygulamaları geliştirmek için gerekli olan tüm bileşenleri bir arada sunar. Bu sayede geliştiricilere zaman kazandırırken, uygulamaların güvenliğini ve ölçeklenebilirliğini artırır.
Django’nun sunduğu en önemli özelliklerden biri, “batteries-included” (içinde pil ile birlikte gelen) yaklaşımıdır. Yani, kullanıcılara başlangıçtan itibaren birçok hazır bileşen ve modül sağlar. Kullanıcı kimliği ve şifre yönetimi, veritabanı bağlantıları, form işleme, kullanıcı arayüzü şablonları gibi birçok özellik, Django ile birlikte gelir. Ayrıca, model-view-template (MVT) mimarisi sayesinde projelerinizin mimarisini kolayca yönetebilir ve sürdürülebilir hale getirebilirsiniz.
Django Kurulumu ve Ortam Hazırlığı
Django kurulumunu yapmadan önce, sisteminizde Python’un yüklü olması gerekmektedir. Python 3.6 veya üzeri bir sürüm kullanmanız önerilir. Python’un kurulumunu tamamladıktan sonra, Django’yu yüklemek için pip (Python’un paket yöneticisi) kullanabilirsiniz. Aşağıdaki komutu terminal veya komut istemcisine yazarak Django’yu kolayca yükleyebilirsiniz:
pip install django
Kurulum işlemi tamamlandıktan sonra, bir sanal ortam oluşturmak iyi bir uygulamadır. Sanal ortam, projeler arasında bağımlılıkları yönetmenizi sağlar. Sanal ortam oluşturmak için aşağıdaki adımları izleyebilirsiniz:
- Terminalde bir dizin oluşturun ve bu dizine gidin.
- Sanal ortam oluşturmak için şu komutu kullanın:
python -m venv myenv
- Oluşturulan sanal ortamı aktifleştirin:
- Windows için:
myenvScriptsactivate
- Unix veya MacOS için:
source myenv/bin/activate
Sanal ortamı aktifleştirdikten sonra, Django’yu bu ortamda kullanmaya devam edebilirsiniz. Yeni bir Django projesi başlatmak için şu komutu yazmanız yeterlidir:
django-admin startproject projectname
Böylece, gerekli dosya ve dizin yapısı otomatik olarak oluşturulmuş olacaktır. Artık proje klasörünüze giderek geliştirmeye başlayabilirsiniz. Django, kurulumdan itibaren size oldukça esnek bir geliştirme ortamı sunar ve projenizin tüm gereksinimlerini karşılamaya hazırdır.
Yeni Bir Django Projesi Oluşturma
Django ile yeni bir proje oluşturmak, framework’ün sunduğu güçlü özellikleri en iyi şekilde kullanabilmek için atılacak ilk adımlardan biridir. Django projesi oluşturmak için öncelikle terminal veya komut istemcisine erişim sağlamamız gerekiyor. Django, Proje oluşturma adımını oldukça basit hale getirerek yalnızca birkaç komut ile hızlıca yeni projeler oluşturmanıza olanak tanır. Örneğin, terminalde django-admin startproject proje_adi komutunu yazarak yeni bir proje oluşturabilirsiniz. Burada proje_adi kısmını kendi projenizin ismi ile değiştirmelisiniz.
Proje oluşturulduğunda, Django otomatik olarak gerekli dosyaları ve dizin yapısını oluşturur. Bu yapı içerisinde settings.py, urls.py ve wsgi.py gibi kritik dosyalar yer alır. settings.py dosyası, projenizin ayarlarının bulunduğu yerdir. Buradan veritabanı ayarlarını, statik dosya ayarlarını ve uygulama ayarlarını yönetebilirsiniz. Projeyi oluşturduktan sonra, proje dizinine geçmek için cd proje_adi komutunu kullanın ve ardından python manage.py runserver komutuyla yerel sunucunuzu başlatabilirsiniz.
Django Uygulaması Geliştirme Adımları
Django’da bir uygulama geliştirmek, projenizin karmaşıklığına ve ihtiyaçlarınıza bağlı olarak değişir. Uygulama, belirli bir işlevselliği temsil eden bir modüldür. Django uygulamanızı oluşturmak için terminalde python manage.py startapp uygulama_adi komutunu kullanmalısınız. Bu komut, gerekli dizin yapısını ve dosyaları oluşturur; örneğin models.py, views.py, urls.py gibi dosyalar. Bu dosyalar, uygulamanızın temel bileşenleridir ve her biri farklı işlevleri yerine getirir.
Uygulama geliştirme süreci, genellikle model oluşturma ile başlar. Modeller, veritabanındaki tabloları temsil eder. models.py dosyasına giderek, kendi veritabanı modellerinizi tanımlayabilirsiniz. Örneğin, bir blog uygulaması için BlogPost adında bir model oluşturabilir, başlık ve içerik alanları ekleyebilirsiniz. Daha sonra bu model üzerinden veritabanı migrasyonu yaparak veritabanınızı güncelleyebilirsiniz.
- views.py: Kullanıcıdan gelen isteklere yanıt veren fonksiyonları veya sınıfları tanımlar.
- urls.py: Uygulamanız içinde hangi URL’lerin hangi görünümlerle eşleşeceğini belirler.
- admin.py: Django admin panelinde görünmesini istediğiniz model ve verileri yönetmek için kullanılır.
Son olarak, tüm bu bileşenlerin düzgün çalışabilmesi için projenizin kök dizinindeki settings.py dosyasına yeni uygulamanızı eklemeyi unutmayın. INSTALLED_APPS listesine uygulama adınızı ekleyerek Django’nun uygulamanızı tanımasını sağlarsınız. Bunları tamamladıktan sonra projenizi test edebilir ve geliştirmeye devam edebilirsiniz.
Django ile Veritabanı Yönetimi ve Migrasyon
Django, web uygulamaları geliştirmek için kullanılan güçlü bir Python framework’üdür. Veritabanı yönetimi, bir web uygulamasının en kritik bileşenlerinden biridir ve Django, bu konuda kullanıcılara büyük kolaylıklar sunar. Django ORM (Object-Relational Mapping) katmanı sayesinde veri tabanındaki tabloları Python nesneleri olarak temsil edebiliriz. Bu, geliştiricilerin SQL sorguları yazmadan, standart Python kodları ile veritabanları ile etkileşime geçmesine olanak tanır.
Django ile veritabanı yönetimi sürecine başlarken öncelikle, projemizde hangi veritabanını kullanacağımızı belirlememiz gerekir. Django, SQLite, PostgreSQL, MySQL ve Oracle gibi birçok veritabanını desteklemektedir. Kullanmak istediğimiz veritabanını ayarladıktan sonra, Django projemiz içerisinde gerekli ayarlamaları yaparak veritabanı ile iletişim kurabiliriz. Ayrıca, veritabanı migrasyonları sayesinde uygulama geliştirme sürecinde yapılan değişiklikleri veritabanına uygulayabiliriz.
- Veritabanı Ayarları: Django’nun ayar dosyasında (settings.py) DATABASES bölümü altında veritabanı ile ilgili ayarları yapılandırmalıyız. Örneğin, SQLite kullanacaksak ayarlar şöyle görünecektir:
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.sqlite3', 'NAME': BASE_DIR / 'db.sqlite3', } }
- Migrasyonlar: Uygulamanızda model değişiklikleri yaptığınızda, bu değişiklikleri veritabanına yansıtmak için migrasyon komutlarını kullanmalısınız. İlk olarak, model değişikliklerinizi tanımladıktan sonra
python manage.py makemigrationskomutunu çalıştırarak migrasyon dosyalarını oluşturmalısınız. Ardındanpython manage.py migratekomutu ile bu değişiklikleri veritabanına uygulayabilirsiniz.
Migrasyonlar, veritabanındaki değişikliklerin kaydını tutarak, uygulamanızın ilerleyen dönemlerinde veri kaybı yaşamadan güncellemeler yapmanıza olanak tanır. Bu, özellikle ekip halinde çalışan geliştiriciler için kritik bir özelliktir. Ayrıca, migrasyonlar geri alınabilir olduğundan, herhangi bir hata durumunda kolayca geri dönüş yapabilirsiniz.
Django, veritabanı yönetimi konusunda sağladığı bu özellikler ile geliştiricilerin işlerini büyük ölçüde kolaylaştırmakta ve verimliliği artırmaktadır. ORM yapısını kullanarak karmaşık SQL sorgularını basit ve anlaşılır hale getirmek, projelerin daha hızlı geliştirilmesini sağlar. Bu nedenle, Django’nun veritabanı yönetim fonksiyonları, framework’ün tercih edilmesinde önemli bir etken olmaktadır.
Sıkça Sorulan Sorular
Django nedir?
Django, Python ile yazılmış yüksek seviyeli bir web framework’üdür. Hızlı geliştirme ve temiz, pragmatik tasarım için tasarlanmıştır.
Django’yu neden kullanmalıyım?
Django, güvenlik, ölçeklenebilirlik ve hızlı geliştirme imkanı sunar. Ayrıca geniş bir topluluğa ve bol dokümantasyona sahiptir.
Django ile hangi tür projeler geliştirebilirim?
Django, bloglar, e-ticaret siteleri, sosyal medya platformları ve daha birçok türde web uygulaması için uygundur.
Django’yu kurmak için hangi gereksinimler var?
Django’yu kullanmak için Python’un sisteminizde kurulu olması gerekir. Python 3.6 veya daha üst bir sürüm önerilir.
Django’nun en son sürümünü nasıl yükleyebilirim?
Django’yu yüklemek için terminalde ‘pip install django’ komutunu kullanabilirsiniz. Bu, en son stabil sürümü kuracaktır.
Django projesi nasıl oluşturulur?
Django projesi oluşturmak için terminalde ‘django-admin startproject proje_adi’ komutunu kullanmalısınız.
Django uygulaması nedir?
Django uygulaması, belirli bir işlevselliği yerine getiren, proje içinde yer alan bir modüldür. Her uygulama bağımsız olarak geliştirilebilir.
Veritabanı nasıl yapılandırılır?
Django, varsayılan olarak SQLite ile birlikte gelir, ancak PostgreSQL veya MySQL gibi diğer veritabanlarını da kullanabilirsiniz. Ayar dosyasındaki DATABASES bölümünü düzenleyerek veritabanınızı yapılandırabilirsiniz.
Django’da URL yönlendirmesi nasıl yapılır?
URL yönlendirmesi için ‘urls.py’ dosyasında yolları tanımlayarak ilgili görünümlere yönlendirebilirsiniz.
Django’da model nedir?
Django’da model, veritabanı yapınızı tanımlayan bir Python sınıfıdır. Veritabanı tablolarına karşılık gelir ve veritabanı işlemlerini yönetir.
Django’da form işlemleri nasıl yapılır?
Django forms modülü, kullanıcıdan veri almak için formlar oluşturmanıza ve bu verileri doğrulamanıza olanak tanır. Form sınıfları kullanarak kolayca form oluşturabilirsiniz.
Django’da statik dosyalar nasıl yönetilir?
Statik dosyalar, ‘static’ klasöründe saklanır ve ‘django.contrib.staticfiles’ uygulaması ile yönetilir. Ayar dosyasında gerekli ayarları yapmalısınız.
Django’nun admin panelini nasıl kullanabilirim?
Django, varsayılan olarak bir admin paneli sunar. ‘admin.py’ dosyasında modelinizi kaydettikten sonra ‘/admin’ yolunu kullanarak giriş yapabilirsiniz.
Django’da kullanıcı kimlik doğrulaması nasıl yapılır?
Django, kullanıcı kimlik doğrulaması için yerleşik bir sistem sunar. ‘django.contrib.auth’ uygulamasını kullanarak kullanıcı kayıt ve oturum açma işlemlerini yönetebilirsiniz.
Django projemi nasıl dağıtabilirim?
Django projenizi dağıtmak için bir sunucuya yükleyebilir ve WSGI uyumlu bir web sunucusu kullanabilirsiniz. Heroku veya DigitalOcean gibi platformlar popülerdir.
Django’da middleware nedir?
Middleware, istek ve yanıt döngüsünde işlem yapan, verileri işleyen bir bileşendir. Örneğin, oturum yönetimi veya güvenlik kontrolleri için kullanılabilir.
Django’da test yazmanın önemi nedir?
Django, test yazmayı teşvik eder ve uygulamanızın hatasız çalıştığından emin olmak için testler yazmak önemlidir. Bu, uzun vadede bakım ve geliştirme sürecini kolaylaştırır.
Django’da sinyal nedir?
Sinyaller, belirli olaylar meydana geldiğinde diğer bileşenlere bildirim göndermek için kullanılır. Örneğin, bir kullanıcı kaydedildiğinde bir sinyal tetiklenebilir.
Django ile REST API nasıl oluşturabilirim?
Django Rest Framework (DRF) kullanarak RESTful API’ler oluşturabilirsiniz. DRF, API geliştirme sürecini kolaylaştıran bir eklentidir.
Django’da caching nasıl yapılır?
Django, farklı caching mekanizmaları sunar. Özellikle ‘cache’ framework’ü ile sayfa, veritabanı sorguları veya diğer verileri önbelleğe alabilirsiniz.




