Django'nun Büyüsünün Gizemini Çözmek
Yayınlanan: 2022-03-10Resmi belgelere göre,
Django, hızlı geliştirmeyi ve temiz, pragmatik tasarımı teşvik eden üst düzey bir Python Web çerçevesidir. Deneyimli geliştiriciler tarafından oluşturulmuş olup, Web geliştirmenin güçlüklerinin çoğunu halleder, böylece tekerleği yeniden icat etmenize gerek kalmadan uygulamanızı yazmaya odaklanabilirsiniz. Ücretsiz ve açık kaynak kodludur.
— DjangoProject.com
Python'un web uygulamaları oluşturmak için popüler çerçevelerinden biridir ve en çok, belirlenmiş konfigürasyonlar ve dosyalar ile bir standart oluşturmada ölçeklenebilirliği nedeniyle tercih edilir. Bu, geliştiriciler için Django'nun tüm hedefini tamamlıyor;
"...az zamanda harika bir uygulama oluşturmak ve temel ayarlarla daha az ilgilenmek."
Ne inşa ediyor olursanız olun, tüm web uygulamalarını kapsayan temel yapılandırmalar, dosyalar ve stiller vardır. Django kullanırken, uygulamanızın geliştirme döngüsünün farklı noktalarında belirli komutları çalıştırdığınızda bunlar sizin için otomatik olarak oluşturulur. Bununla, Django sizin için diğerlerini hallederken, uygulamanızı geliştirmenin temel yönüne odaklanmak için yeterli zamanınız olacak.
Bu, kaputun altında birçok şey olduğu anlamına gelir. Hareketli parçaları tam olarak kavrayamayan biri için bu çok zor olabilir. Bu yazıda aşağıdakileri öğreneceğiz:
- Django'nun Kurulumu
-
startproject
vestartapp
komutları - Aşağıdakileri içeren Django yapılandırma dosyaları;
- ayarlar.py
- urls.py
- yönetmek.py
- Model Düzeni
- yönlendirme
Bunların hepsinin nasıl bir araya geldiğini ve oynadıkları rolü öğreneceğiz. Django'nun içinde olup biten her şeye bakmanın mümkün olmayacağını bilmek önemlidir. Bu eğitimin kapsamı dışındaki durumlar için, sizi bu konuda yardımcı olacak kaynaklara yönlendirecek bağlantılar olacaktır.
Öğrenme amaçlı bir e-ticaret platformu oluşturacağız. Bu tam anlamıyla bir e-ticaret sitesi değildir, uygulamamız sadece iki temel özelliğe sahip olacaktır; ürün oluşturma ve yöneticinin görünümünden sipariş verme.
Bu makale, Django'nun önceden oluşturulmuş komutlarını, dosyalarını ve temellerini anlamanız konusunda size rehberlik edecektir. Django'yu kullanan veya kullanmayı planlayan ve kaputun altında ne olduğunu bilmek isteyen geliştiricilere yöneliktir. Django'yu kullanmış olmanız zorunlu olmasa da, bu makaleye devam etmeden önce Django'nun temelleri konusunda deneyim sahibi olmak size avantaj sağlayacaktır. Bu parçada nelerin ele alınacağını tam olarak kavramak için çalışan bir Python bilgisine sahip olmanız gerekir.
Django'yu Yükleme
Zaten Django kurulu değilse, bunu yapmak için gereken adımlar burada.
İlk olarak, djangodev
adında bir sanal ortam oluşturun. Django çalışma alanınızı ve bağımlı paketlerini izole etmek için buna ihtiyacınız var.
python3 -m venv ~/.virtualenvs/djangodev
Şimdi sanal ortamınıza girmek için onu aktif hale getirmeniz gerekiyor;
source ~/.virtualenvs/djangodev/bin/activate
source
ile çalışırken herhangi bir hata alırsanız, bu alternatif komutu kullanabilirsiniz,
. ~/.virtualenvs/djangodev/bin/activate
Windows kullanıcıları için bunun yerine bunu kullanın,
...\> %HOMEPATH%\.virtualenvs\djangodev\Scripts\activate.bat
Not: Django'yu kullanmak istediğiniz her an sanal ortamı etkinleştirmeniz gerekir.
Artık sanal ortamınızda olduğunuza göre, Django'yu kurun:
python -m pip install Django
Django'nun düzgün kurulup kurulmadığını kontrol etmek için şunu çalıştırın;
python -m django --version
Şakaboom! Şimdi biraz sihir yapmaya hazırsınız, asalarınızı hazırlayın!
Hareket halindeyken dosya ve klasör oluşturma yöntemi basit ve anlaşılır olabilir. Ancak, orta veya büyük bir proje ve geçilmesi gereken bir son tarih oluşturmanız gerektiğinde ideal değildir. Kişisel projeler için bile her zaman bir son teslim tarihimiz vardır.
Yeni bir büyük proje oluştururken bu yöntemi izleyerek, birden çok dosya ve klasör oluşturmanız ve birden çok ayar yapmanız gerekecek, bu da önlenebilir hataların oluşmasına ve çok fazla zaman kaybına neden olabilir. Django aracılığıyla bize sunulan startproject
ve startapp
komutları bu sorunu çözmeyi amaçlamaktadır. Bu iki komut, dosyalar, klasörler oluşturur ve sizin için birçok yapılandırma gerçekleştirir.
startproject
komutunu kullanarak yeni bir uygulama oluşturarak başlayalım.
İskele Uygulaması
Uygulamamızı oluşturacağız ve oluşturulan dosyalara ve kullanacağımız birkaç komuta bir göz atacağız. Başlamak için bu komutu terminalinizde çalıştırın;
django-admin startproject ecommerce_site
Django'yu kurarken, eylemlerini gerçekleştirmesi için erişim sağlamak için yolunuza django-admin
eklenir. İdari sorumluluklar için Django'nun komut satırı yardımcı programıdır. Burada daha fazla django-admin
kullanımı öğrenin; bu makalenin kapsamını biraz aşıyor.
startproject
, projeyi oluşturmaya yardımcı olan bir Django komutudur. Burada projemize ecommerce_site projemizin adını geçiyoruz. Ardından projeyi ecommerce_site adlı bir dizinde oluşturmaya devam eder. Dizin şöyle görünmelidir,

Yeni oluşturulan dizine gitmemiz ve uygulamayı oluşturmak için komutu çalıştırmamız gerekecek.
cd ecommerce_site python manage.py startapp trading
startapp
, proje dizininde manage.py
tarafından yürütülen bir komuttur, birden fazla dosya ve komutta belirtilen ad kullanılarak adlandırılan bir klasör oluşturur, bu durumda, trading
yapılır. Uygulama klasörü, bir uygulamanın özelliklerini oluşturmak için gerekli olması gereken basit dosyalardan oluşur. Şimdi dizininiz şöyle görünmelidir:

Bir proje ile bir uygulama arasındaki farkı merak ediyorsanız. Bir proje bir Django web uygulamasıdır, bir veya daha fazla uygulamadan oluşabilir. manage.py
dosyasını ve settings.py
ile diğer dosyaları içeren diğer modülü tutan klasördür. Uygulama, belirli bir özelliği gerçekleştiren, models.py
, geçiş dizini ve daha fazlasını içeren bir python paketidir. Daha fazlası için bu cevabı Stack Overflow'ta kontrol edebilirsiniz.
startproject
, ana proje dizinini oluştururken startapp
, uygulama dizinini oluşturur. Her ikisine de nesilde kullanılmak üzere bir isim geçmiştir. startproject
, yeni bir proje oluştururken çalıştırılan ilk komuttur, startapp
ise yeni proje dizini içinde çalıştırılır.
Mevcut düzen, inşa ettiğiniz uygulama ne olursa olsun kullanabileceğiniz harika bir haritalamadır. Ölçeklenebilir ve ihtiyaç duyacağınız dosyalardan oluşur. Proje içinde dosya oluşturma, yeniden adlandırma, düzenleme ve taşıma şansı vardır.
Django'nun Yapılandırması
Django sizin için farklı ayarlar ve konfigürasyonlar sağlar, iki komutu farklı dosyalarda çalıştırdıktan sonra, her birinin ne yaptığını öğrenmek için oluşturulan dosyaları inceleyelim.
settings.py
Çoğu web uygulaması aşağıdaki gibi yapılandırmalara ihtiyaç duyar; kullanıcıları doğrulamak için kimlik doğrulama, belirli yeteneklere sahip belirli kullanıcılara izin vermek ve güvenlik standartları belirlemek için izinler. Tüm bunlar, kullanıcılarınıza ihtiyaç duydukları en iyi deneyimi sunmak için gereklidir. Bir geliştirici olarak, üzerinde çalıştığınız her uygulama için bunların her birini kendi başınıza uygulamaya başlamanız uzun zaman alacaktır.
Django size bu gerekli konfigürasyonları ve daha fazlasını sağlar - öyle ki, istediğinizi seçip bunları takabilirsiniz. Bunlar settings.py
yapılır, sizin için temel işlevleri sağlamak üzere oluşturulmuş önceden oluşturulmuş ayarlar vardır.
Django bir projeyi çalıştırmaya çalıştığında, aradığı belirli değişkenler vardır. settings.py
, diğer dosyalara veya bilgilere yol açan bu değişkenleri tutan dosyadır. Django, manage.py
dosyasından bu dosyaya yönlendirilir ve buradan bilgi alır veya yönlendirildiği diğer dosyaları yükler.
Bu konfigürasyonlar şunları içerir:
-
DEBUG
DEBUG
işlevi, geliştirme sırasında hataların okunmasını ve hata ayıklama kodunu etkinleştirmek içinTrue
olarak ayarlanmıştır, üretim sırasında (yani dağıtırken)False
olarak ayarlanmalıdır. Bu ayar, kodunuzu çalıştırmayı denediğinde Django'nun yardımıyla kodunuzda daha iyi hata ayıklayabilmenizi sağlar. -
INSTALLED_APPS
Bu, Django'da belirli bir özelliği gerçekleştiren tüm uygulamaların listesidir. Kullanıcı kimlik doğrulaması için kullanılan "django.contrib.admin'
, yönetici işlevi için kullanılan Django.contrib.admin" ve kullanıcılara bildirim veya bilgi göndermek için gereken'django.contrib.messages'
'django.contrib.auth'
gibi bazı varsayılan uygulamalarla birlikte gelir.startapp
komutunu kullanarak oluşturduğunuz diğer tüm uygulamaların Django tarafından çalıştırılabilmesi için burada olması gerekir. -
MIDDLEWARE
, Django istekleri ve yanıtlarından geçen girdileri ve çıktıları işlemek için hafif bir çerçevedir.'django.contrib.auth.middleware.AuthenticationMiddleware'
gibi her ara yazılım, bir uygulama ile belirli bir işlevi yerine getirir ve kullanıcıları isteklerle ilişkilendirmek için'django.contrib.sessions'
ile çalışır. Dokümanlardaki her bir ara katman yazılımının diğer özelliklerini kontrol etmelisiniz. -
ROOT_URLCONF
, Django uygulamanıza bir istek iletildiğinde Django'nun sizinurlpatterns
aradığı bir yolun değişkenidir. Bir Django uygulamasında bir istek yapıldığında, Django bu değişkeni arar ve önde gelen dosyayı yükler ve eşleşen yolu aramak içinurlpatterns
listesi boyunca döngüler yapar. -
TEMPLATES
, bir görünümü temsil etmek için HTML dosyalarının oluşturulmasına izin veren bir ayardır. İstek, yetkilendirme ve mesaj uygulamalarıyla iletişim kurar.'BACKEND'
değeri ve'APP_DIRS'
True
olarak ayarlanmışsa, Django'nun /templates klasöründe HTML dosyalarını aramasını sağlar.OPTIONS
'context_processors'
, isteği bir argüman olarak alan ve bir şablon oluşturulduğunda bağlamla birleştiren çağrılabilirlerdir; bu çağrılabilirler, hata ayıklama, kimlik doğrulama ve genel olarak isteklerin işlenmesine yardımcı olmak için çalışır. -
WSGI_APPLICATION
,wsgi.py
dosyasındakiapplication
değişkenine giden bir yoldur. -
DATABASE
, PostgresSQL, MySQL ve MongoDB gibi harici bir veritabanına (veya varsayılan sqlite durumunda olduğu gibi dahili) erişimi tutan bir sözlüktür. Örneğimiz için kullanacağım bir Postgres veritabanı örneği:
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.postgresql_psycopg2', 'NAME': 'db_name', 'USER': 'db_user', 'PASSWORD': 'db_password', 'HOST': 'localhost', 'PORT': '', } }
Varsayılan sqlite veritabanını kullanmaya karar verebilirsiniz, bu üretim için pek işe yaramaz. Yukarıdaki gibi bir Postgres veritabanı kurabilirsiniz, önce veritabanını oluşturmanız ve veritabanına yazma izni olan kullanıcı, şifreyi iletmeniz gerekir.
Not : Bu eğitimin amacı için önceden ayarlanmış varsayılan sqlite veritabanını kullanabilirsiniz. Yukarıdakiler, Django'da SQL ve NO-SQL veritabanı bağlantısını nasıl ayarlayabileceğinizin bir gösterimidir.
-
AUTH_PASSWORD_VALIDATORS
bunlar, parola doğrulamaları için çağrılan işlevlerdir. Kullanıcı (ve yöneticiler) kayıtları oluştururken, şifreleri sıfırlarken ve değiştirirken çağrılırlar. Resmi belgelerden onlar hakkında daha fazla bilgi edinebilirsiniz.
Ayarlarla ilgili daha fazla belge burada bulunabilir.
manage.py
Çoğu web projesi, komutların başladığı bir giriş noktasına ihtiyaç duyar. Uygulamaya ağ geçidi görevi gören bir giriş noktası. Her Django projesinde, genellikle manage.py
dosyasıdır.
Bu dosya, uygulamanızda bir başlangıç noktası olarak gereklidir. Buradan tüm komutlar çalıştırılır ve her şey burada başlar.
manage.py
, Django-admin ile aynı işlevi görür. Ayrıca Django'ya uygulamanızda sahip olduğunuz konfigürasyonların konumunu da söyler. Bu, varsayılan olarak ayarlanmıştır ve değiştirilmesi gerekmez.
settings.py
dosyamızın varsayılan ayarlar modülünü işlemek için def main()
işlevini kullanır. Yürütme işlevini içe aktarmaya çalışır ve hatayla karşılaşırsa ImportError
atar. Aksi takdirde, komut satırından sys.argv
tarafından iletilen herhangi bir argümanı alır ve yürütür.

sys.argv
, terminal aracılığıyla iletilen komutu alan bir listedir. Komut satırında python manage.py runserver
çalıştırdığımızda, sys.argv
["manage.py", "runserver"]
olarak ayarlanır ve bu, execute()
işlevine iletilir.
python manage.py startapp trading
veya python manage.py makemigrations
makemigrations gibi argümanlar, yürütme için sırasıyla [ "manage.py", "startapp", "trading"]
ve ["manage.py", "makemigrations"]
olarak ayarlanır.
if ifadesi, verilen komut manage.py
olarak ayarlanmışsa çalışacak şekilde ayarlanır.
django-admin
işlevlerini çalıştırmanın yanı sıra, onu çalışan sunucuda, taşıma işlemlerini ve projenizin kullanacağı diğer komutlarda kullanacaksınız. Projelerinizi dağıtırken, test ederken ve hata ayıklarken de buna ihtiyacınız olacak.
Model Düzeni
Django sizin için basit bir modelleme düzeni sağlar. Modellerinizi trading
dizinindeki models.py
dosyasında yapılandırırsınız. Sınıflarınız (veya modelleriniz), veritabanı tablolarınızın izleyeceği düzenlerdir.
Her tablo için kullanıcıdan (veya yöneticiden) almak istediğiniz veri türlerine göre sınıflarınızı tanımlarsınız. Modellerimiz, settings.py
içindeki DATABASE
değişkeniyle çalışan bir geçiş dosyası oluşturur.
Ürünler ve siparişler için ihtiyacımız olacak iki model oluşturalım:
from django.db import models class Product(models.Model): name = models.CharField(max_length=50) image = models.ImageField(upload_to='products', default='python.png') price = models.IntegerField() description = models.TextField() def __str__(self): return self.name class Order(models.Model): product = models.ForeignKey(Product, on_delete=models.CASCADE) quantity = models.IntegerField() date = models.DateField(auto_now_add=True) user = models.CharField(max_length=50) def __str__(self): return self.user
Ürün modelinin adı, fiyatı, açıklaması ve bir resim (kaydedildiğinde bir products
klasörüne yüklenecektir. Bu, klasör yoksa oluşturulur) sütunlarına sahiptir. order
bir product
( products
tablosuna bağlı), miktar, tarih ve kullanıcı sütunları bulunur.
Bu bilgilerle Django, uygulama için bir veritabanı şeması oluşturur. Ayrıca, Ürün ve Sipariş nesnelerine erişmek için bir Python veritabanı erişim API'si oluşturur. Django'nun yerleşik bir geçiş aracı vardır, bu nedenle geçişler için harici paketler kullanmanız gerekmez.
Sonraki adım, geçiş komutunu çalıştırmak ve veritabanına geçiş yapmaktır. Ancak bunu yapmadan önce, proje dizinimizde trading
bir uygulama olarak kaydetmemiz gerekiyor.
Öncelikle, ticaret dizinini Django'da bir uygulama olarak yapılandırmamız gerekiyor. Django, app.py
dosyasında bunu sizin için yaptı. Bu dosya, trading
bir uygulama olarak kaydeder ve daha sonra settings.py
dosyasında kullanılacaktır.
Şimdi settings.py
INSTALLED_APP
trading
ekleyin. Şöyle görünmelidir:
INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'trading.apps.TradingConf', ]
Terminalde şunu çalıştırın:
$ python manage.py makemigrations trading $ python manage.py migrate
Not: Sanal ortamınız aktif olmalı ve proje dizini içerisinde olmalısınız.
python manage.py makemigrations trading
, ticaret modülünde yapılan değişiklikleri not eder ve model.py ve python manage.py migrate
models.py
Migrate'deki değişikliklerin migration
klasöründe bir dosya oluşturur ve ardından değişiklikleri günceller.
Oluşturulan taşıma dosyasını, 0001_initial.py adlı migration
dizininde python manage.py makemigrations trading
komutundan 0001_initial.py
. Dosya içinde oluşturulacak komutlar olarak sınıfları ve sütunları görebilirsiniz. models.py
daha fazla değişiklik yapıldıkça, burada daha fazla dosya oluşturulacaktır.
Yönetici Özellikleri
Mevcut uygulamamızda, uygulamada oluşturulacak ürün ve siparişleri yönetmek için admin özelliklerine ihtiyacımız olacak. Django, bize zaten emrimizde olan yerleşik bir yönetici işlevi sağlar. Yönetici uygulaması(özelliği), INSTALLED_APP
listemize de kaydedildi; 'django.contrib.admin'
.
Ayrıca, yöneticinin URL'si de URL yapılandırma dosyamız urls.py
urlpatterns
listesine kaydedilmiştir; path('admin/', admin.site.urls),
. admin.py
dosyası, modelleri ve modellerde gerçekleştirilecek CRUD eylemlerini kaydetmenizi mümkün kılar.
Yöneticiyi kurmak için bunu terminalde çalıştırın:
$ python manage.py createsuperuser
Bir kullanıcı adı, e-posta ve şifre girmeniz istenecektir. Bundan sonra, başarıyla bir yönetici oluşturdunuz. Yönetici işlevine başlamak için sunucuyu çalıştırın:
$ python manage.py runserver
https://127.0.0.1:8000/admin/ adresini ziyaret etmek, bir oturum açma oturumuna yol açacaktır, oturum açtığınızda (oluşturduğunuz kullanıcı adı ve şifre ile) yönetici panosuna yönlendirilirsiniz:

Gruplar ve kullanıcılar, yöneticinin kullanıcı yönetimine ve iznine erişmesine izin veren varsayılan yapılandırmalardır. Şimdi modellerimizi kaydedelim.
admin.py
aşağıdaki satırları ekleyin:
from django.contrib import admin # Register your models here. from .models import Product, Order admin.site.register(Product) admin.site.register(Order)
from django.contrib import admin
yönetici işlevselliğini içe aktarır ve ardından bir yöneticinin ürünler üzerinde CRUD eylemleri gerçekleştirebilmesi ve kontrol panelinden sipariş verebilmesi için iki sınıfı models.py
içe aktardık ve kaydettik.
Modelleri kaydettikten sonra gösterge tablonuz şöyle görünmelidir:

Ürün ekleme:

Yönetici panelinden sipariş verme:

Kolay Yönlendirme
Her sitenin, son kullanıcı için belirli bilgiler içeren belirli sayfalara yönlendiren rotaya veya URL'lere ihtiyacı vardır. Benzer bilgi veya uygulama koleksiyonlarına belirli bir yoldan erişilir. Dosyalar içinde erişilebilirlik ve iletişim için yolları birlikte gruplandırmaya ihtiyaç vardır. Django bunu sizin için urls.py
dosyasında yaptı.
urls.py
, settings.py
içindeki ROOT_CONF
değişkeninden yola çıkan bir dosyadır. Ana URL yapılandırmamızın yapıldığı yer burasıdır. Farklı dosya veya klasörlerde, hatta urls.py
dosyasında görünümler oluşturduğumuzda, bunların urlpatterns
listesinde yapılandırılmaları gerekir.
Django, dosyada urlpatterns
adlı bir liste bekler. ROOT_CONF
değişkenindeki dosyayı, urlpatterns
listesine yerleştirdiğiniz herhangi bir başka dosyayla değiştirebilirsiniz.
urlpatterns = [ path('admin/', admin.site.urls), ]
Liste, path
veya re-path
örnekleri olan nesnelerden oluşur. Her örneğin iki zorunlu parametresi vardır, 'admin/'
kalıbı ve bir görünüm veya URL dosyası olan admin.site.urls
.
Örnekler ayrıca daha fazla URL yapılandırmasına sahip başka bir dosyaya yönlendiriyor olabilir. Bu okunabilirlik için yapılır.
views.py
Bir arka uç uygulaması için önemli bir ihtiyaç, her bir rotanın eşlendiği görünümlerdir. Django'da, bir uygulama için işlev veya sınıf tabanlı görünümlerinizi views.py
dosyasına yazarsınız. Görünüm, bir isteği işleyen ve kullanıcınıza bir yanıt gönderen bir sınıf veya işlevdir.
views.py
dosyanızı şu şekilde düzenleyin:
from django.http import HttpResponse def home(request): return HttpResponse("This is a shopping site for products") def order(request): return HttpResponse("Hello, welcome to our store, browse to our products and order!")
Burada, çağrıldığında cümle döndürmek için iki görünümü (işlev görünümleri) tanımlamada kullanmak için HTTPResponse
içe aktardık. def home
, birincil adresi ziyaret ettiğinizde ve sipariş URL'sine eriştiğinizde def order
çağrılmalıdır.
Görünümlerimizi oluşturduktan sonra onu farklı rotalara (veya urlpatterns
) atamamız gerekiyor. Bu birkaç yolla yapılabilir, aynı dosyada bir urlpatterns
listesi oluşturabilir veya trading.views
ecommerce_site.urls
dosyasına aktarabilir ve yolu oluşturabiliriz.
Bunu yapmanın tercih edilen yolu, bir alt URL yapılandırma dosyası oluşturmak ( trading
içinde) ve onu ecommerce_site.urls
içine dahil etmektir. trading
dizininde bir urls.py
dosyası oluşturun. Dizininiz şöyle görünmelidir:
trading/ __init__.py admin.py apps.py migrations/ __init__.py 0001_initial.py models.py tests.py urls.py views.py
Yeni dosyanıza ( urls.py
) aşağıdaki kodu ekleyin
from django.urls import path from . import views urlpatterns = [ path('', views.home, name='home'), path('order/', views.order, name='order'), ]
trading
URL'si yapılandırma dosyasını ( urls.py
) proje URL'leri yapılandırma dosyasına kaydedelim,
from django.contrib import admin from django.urls import include, path urlpatterns = [ path('admin/', admin.site.urls), path('', include('trading.urls')) ]
URL kalıplarına erişebilmek için 2. satırda urlpatterns
include
sınıfını kullanacağız. Ardından bir kalıp seçin ve urls.py
dosyasını ticaret dizinine django.urls
.
Burada yaptığımız şey, path
sınıfını Django'dan ve views.py
dosyasından almaktı. Ardından listemiz her görünüm için iki yol örneğinden oluşur. Yani def home
https://127.0.0.1:8000/ adresinden çağrılır.

Ve def order
https://127.0.0.1:8000/order/ adresinden çağrılır.

Not: startproject
ve startapp
çalıştırma süreci zorunlu değildir, ancak Django tarafından oldukça teşvik edilmektedir. Ve her komutu çalıştırdıktan sonra çalışma rahatlığınıza göre dosya ve klasörler oluşturabilir/taşıyabilirsiniz.
Bağımlılık Ağacı
Django'nun gelen URL'lerden gelen istekleri işleme süreci şu şekildedir:
- Django,
ROOT_CONF
değişkeninde URL'lerinizin kök konumunu (yolunu) arar. - Django, sağlanan yolda verilen python dosyasını yükler. Ve
urlpatterns
değişkenini bulur, bu, tümdjango.urls.path()
ve/veyadjango.urls.re_path()
örneklerini içeren bir listedir. - Listede, Django sırayla gider ve eşleşen bir URL arar.
- Python, görünümü içe aktarır ve çağırır (işlev tabanlı veya sınıf tabanlı görünüm). Hangi HTTP isteği ile iletilir.
- Görünüm, iletilen isteği ve bilgileri işler ve bir mesaj/şablon döndürür veya başka bir görünüme yönlendirir.
- Hiçbir URL kalıbı eşleşmezse veya bu sürecin herhangi bir noktasında bir istisna ortaya çıkarsa, Django uygun bir hata işleme görünümünü çağırır.

Çözüm
Komut satırı olmadan Django için dosya oluşturma olasılığını öğrendik. Ayrıca bir Django Projesinin avantajlarını ve yapı taşını da öğrendik. Django, basitlik yaratmak amacıyla arka uç projeleri oluşturmak için harika bir araçtır.
Bu eğitimin kodunu GitHub'da kontrol edebilirsiniz.
Kaynaklar
- Django'da şifre yönetimi
- Django: Başlarken
- Django: Ayarlar
- O'Reilly'den Hafif Django