Django web çerçevesinin, onu eksiksiz bir web sitesi veya web uygulaması oluşturmak için ihtiyaç duyacağınız tek çerçeve yapan bir model görünüm şablonu (MVT) mimarisi vardır. Bu Python çerçevesi, veritabanları oluşturan modeller oluşturmanıza ve görünümleri kullanarak kullanıcı arabiriminde dinamik HTML şablonları oluşturmanıza olanak tanır.

Django'nun gücü sır değil; hızlı, güvenilir, ölçeklenebilir ve güvenlidir. Bu yazılımın ölçeklenebilirliği kadar güvenilirliği de MVT mimarisine bağlıdır. Ve bu makalede, Django'nun MVT mimarisinin tam olarak nasıl çalıştığını öğreneceksiniz.

Django'nun Modeli Nedir?

Django'nun MVT mimarisindeki model, web siteniz aracılığıyla depolamak istediğiniz verilerin yapısını ve davranışını tanımlar. Oluşturduğunuz her Django modeli, modelin her özniteliğinin tabloda bir alan haline geldiği, karşılık gelen bir veritabanı tablosu oluşturur.

Kuruluma devam ediyoruz Django'ya giriş makalesi, satıcılar için bir model oluşturabilirsiniz. Bir satıcı, ad ve iletişim bilgileri gibi kişisel bilgileri içeren bir satıcı modeline ve her satıcının sattığı ürünler için ilgili bir modele sahip olabilir.

instagram viewer

Mevcut Örnek Django Projesi Dosya Yapısı

benim sitem/
benim sitem/
_pycache_
_init_.py
asgi.py
ayarlar.py
urls.py
wsgi.py
satıcılar/
göç
_init_.py
admin.py
apps.py
modeller.py
test.py
görünümler.py
db.sqlite3
yönetmek.py

Django Modelleri Oluşturma

Yukarıdaki dosya yapısında satıcıların uygulaması bölümünün altına bakarsanız, adında bir dosya görürsünüz. modeller.py. Burası, web sitenizin satıcılar bölümü için tüm Django modellerinizi oluşturacağınız yerdir. Oluşturduğunuz her model, aşağıdakilerin bir alt sınıfı olacaktır. Django'nun Model API'si, bu yüzden her Django tarafından oluşturulan modeller.py dosyanın varsayılan bir model içe aktarımı var.

Modeller.py Dosyası

Django.db içe aktarma modellerinden

# Modellerinizi burada oluşturun.

sınıf Satıcı (modeller. modeli):
ad_adı = modeller. CharField (maks_uzunluk=30)
last_name = modeller. CharField (maks_uzunluk=30)
iletişim_numarası = modeller. CharField (maks_uzunluk=30)

sınıf Ürün (modeller. modeli):
satıcı = modeller. Yabancı Anahtar (Satıcı, on_delete=models. ÇAĞLAYAN)
item_name = modeller. CharField (maks_uzunluk=100)
item_qantity = modeller. Tamsayı Alanı()
item_price = modeller. DecimalField (max_digits=9, decimal_places=2)
item_description = modeller. Metin alanı()

Yukarıdaki kod, güncellenmiş içeriğin bir kopyasıdır. model.py dosya. Dosya şimdi iki model oluşturuyor: Satıcı ve Ürün. Bu modeller, bir satıcının satışta birçok ürüne sahip olabileceği bire-çok ilişkisini paylaşır. Bu nedenle, Ürün modeli bir yabancı anahtar satıcıdan ve bir on_delete öznitelik olarak ayarlandı modeller. ÇAĞLAYAN, bu, bir satıcıyı sildiğinizde, buna sahip her ürünü otomatik olarak sileceğiniz anlamına gelir. birincil anahtar olarak yabancı anahtar.

İlişkili: Bu Muhteşem Kurslarla Bugün Python ve Django Öğrenin Yukarıdaki koddaki modellerin her birinin birincil anahtarı olmadığını da fark edebilirsiniz. Bunun nedeni, Django'nun otomatik olarak bir birincil anahtar açıkça bir tane oluşturmazsanız.

Oluşturduğunuz herhangi bir modeli kullanmadan önce, onu nerede bulacağını Django'ya söylemeniz gerekir. Bunu yapmak için, şuraya gitmeniz gerekir: ayarlar.py dosya ve içeren modülün adını girin modeller.py dosya, içine INSTALLED_APP Bölüm.

Bu makale için örnek projede, modeller.py dosya satıcıların modülündedir. Bu nedenle, güncellenen INSTALLED_APP bölüm aşağıdaki gibi okunacaktır:

INSTALLED_APPS = [
'Django.contrib.admin',
'Django.contrib.auth',
'Django.contrib.contenttypes',
'Django.contrib.sessions',
'Django.contrib.mesajlar',
'Django.contrib.staticfiles',
'satıcılar',
]

Yukarıdaki kodla, satıcıların uygulamasındaki modeller artık Django web sitesinde görülebilir ve artık geçişlere geçebilirsiniz.

Geçişleri gerçekleştirmek önemlidir çünkü bu süreç, modellerinizde yaptığınız değişiklikleri ilgili veritabanı şemasına yaymanın bir yoludur. Bu nedenle, modelinizde her değişiklik yaptığınızda, iki adımdan oluşan geçiş sürecini yürütmeniz gerekir.

Birinci adım, içinde tespit edilen değişikliklere dayalı olarak geçişler oluşturan bir komut olan geçişleri yapmaktır. modeller.py dosya. Geçiş işlemini başlatmak için terminalinizi açmanız, Django projenizin bulunduğu dizine gitmeniz ve aşağıdaki komutu kullanarak sunucuyu başlatmanız gerekir:

python manager.py çalıştırma sunucusu

Sunucu bir terminalde çalışırken yeni bir terminal açın ve aşağıdaki komutu girin:

python manager.py makemigrations

Yürütmeden sonra, terminal aşağıdaki çıktıyı üretecektir:

'Satıcılar' için geçişler:
satıcılar\geçişler\0001_initial.py
- Model Satıcısı oluştur
- Model Ürün Oluştur

Yukarıdaki çıktı, artık iki model (satıcı ve ürün) için geçişleriniz olduğunu açıkça belirtir. Şimdi, satıcınızın modülündeki geçiş klasörüne giderseniz, artık adında yeni bir dosya olduğunu göreceksiniz. 0001_initial.py. Bu dosyada, az önce oluşturduğunuz geçişleri bulacaksınız.

0001_initial.py Dosyası

# Django 3.2.9 tarafından 2022-02-26 16:06 tarihinde oluşturuldu

django.db'den içe aktarma geçişleri, modeller
Django.db.models.deletion'ı içe aktar

sınıf Göç (göçler. Göç):

başlangıç ​​= Doğru

bağımlılıklar = [
]

işlemler = [
göçler. Model Oluştur(
isim='Satıcı',
alanlar=[
('kimlik', modeller. BigAutoField (auto_created=Doğru, birincil_key=Doğru, serialize=Yanlış, verbose_name='ID')),
('first_name', modeller. CharField (maks_uzunluk=30)),
('soy_adı', modeller. CharField (maks_uzunluk=30)),
('contact_number', modeller. CharField (maks_uzunluk=30)),
],
),
göçler. Model Oluştur(
isim='Ürün',
alanlar=[
('kimlik', modeller. BigAutoField (auto_created=Doğru, birincil_key=Doğru, serialize=Yanlış, verbose_name='ID')),
('item_adı', modeller. CharField (maks_uzunluk=100)),
('item_qantity', modeller. TamsayıAlan()),
('item_fiyatı', modeller. DecimalField (decimal_places=2, max_digits=9)),
('item_description', modeller. Metin alanı()),
('satıcı', modeller. Yabancı Anahtar (on_delete=django.db.models.deletion. CASCADE, to='seller.seller')),
],
),
]

Her yeni geçiş yaptığınızda, geçiş klasörü bu dosyanın yeni bir sürümünü oluşturur.

Geçiş sürecinin ikinci adımı, sonunda modelleri taşımaktır. Bu, veritabanı durumunu aşağıdakilerle senkronize ettiğiniz anlamına gelir. modeller.py dosyasında az önce oluşturduğunuz geçişleri kullanarak 0001_initial.py dosya. Bu işlemi (sunucu çalışırken) aşağıdaki komutla tamamlayabilirsiniz:

python manager.py taşıma

Django'nun Şablonu Nedir?

Şablonlar, Django projeniz için dinamik olarak HTML oluşturmanın bir yoludur. Her Django şablonunda .html uzantısı ve statik ve dinamik içeriğin bir kombinasyonu. Django şablonları, bir HTML belgesinde değişkenler ve etiketler oluşturmanın yeni yollarını içeren benzersiz bir sözdizimine sahiptir.

Django Şablonu Oluşturma

Bu makale için örnek E-ticaret web sitesinde şablonları tanıtmak için satıcılar modülünde yeni bir dizin oluşturmanız gerekir. "Şablonlar" adı verilen bu yeni dizin, ana sayfadan başlayarak satıcıların uygulaması için tüm HTML belgelerinin evi olacaktır.

Satıcılar_home.html Dosyası





Satıcılar | e-ticaret


Hoş Geldiniz Satıcılar!




Şablonlarınızı oluşturduktan sonra, şablonlarınızın dizinini Django'ya görünür hale getirmeniz gerekir. ŞABLONLAR bölümü ayarlar.py dosya. güncellenmiş ŞABLONLAR bölüm aşağıdaki gibi görünecektir:

ŞABLONLAR = [
{
'BACKEND': 'django.template.backends.django. DjangoŞablonlar',
'DIRS': [
# şablonların konumuna işaret eden yeni kod
BASE_DIR / 'satıcılar' / 'şablonlar'
],
'APP_DIRS': Doğru,
'SEÇENEKLER': {
'bağlam_işlemcileri': [
'Django.template.context_processors.debug',
'Django.template.context_processors.request',
'Django.contrib.auth.context_processors.auth',
'Django.contrib.messages.context_processors.messages',
],
},
},
]

Artık Django, web sitesi için şablonları nerede bulacağını bildiğine göre, devam edebilir ve görünümü kullanarak bunları kullanıcı arayüzüne aktarabilirsiniz.

Django'nun Görüşü Nedir?

Görünüm, Django'nun MVT mimarisinin ikinci katmanıdır, bir görünüm onu ​​kullanıcı arayüzüne işlemedikçe bir şablon işe yaramaz. Görünüm, web isteklerini kabul etmekten ve uygun yanıtları (şablonlar dahil) döndürmekten sorumludur. En temel biçiminde, görünüm, içinde depolanan bir Python işlevidir. görünüm.py Django projenizin dosyası.

Django Görünümü Oluşturma

bu görünüm.py dosya, örnek Django projesinin satıcıların modülündedir. Bir satıcı web sitenizi ziyaret ettiğinde, onun bir satıcının ana sayfasına gitmesini istersiniz. Bu ana sayfa, yukarıdaki şablon bölümünde oluşturulana çok benzer bir HTML şablonu kullanarak oluşturacaksınız.

view.py Dosyası

django.shortcuts'tan içe aktarma oluşturma

def indeksi (istek):
dönüş oluşturma (istek, 'sellers_home.html')

Yukarıdaki görünüm bir istek alır ve satıcıların HTML şablonunu döndürür. Bu nedenle, bir kullanıcı her ziyaret ettiğinde (veya talep ettiğinde) http://127.0.0.1:8000/sellers/ satıcıların ana sayfasını görecekler. Bu, oluşturduktan sonra urls.py satıcıların modülündeki dosya.

Satıcılar urls.py Dosyası

django.urls ithalat yolundan
itibaren. görünümleri içe aktar

url kalıpları = [
path('', görünümler.index, ad='index'),
]

Ve satıcıların modülünün yolunu ekleyin urls.py dosya urls.py ana Django dizininde bulunan dosya.

Web Sitesi urls.py Dosyası

django.contrib içe aktarma yöneticisinden
Django.urls'den içe aktarma dahil, yol

url kalıpları = [
path('satıcılar/', dahil('seller.urls')),
yol('admin/', admin.site.urls),
]

Görünüm ayarlandığına göre, Django sunucusunun hala çalıştığından emin olabilir ve şuraya gidebilirsiniz: http://127.0.0.1:8000/sellers/ satıcıların ana sayfasını görmek için tarayıcınızda.

Satıcıların Ana Sayfası

Django'nun MVT Mimarisi vs. MVC Mimarisi

Django'nun MVT mimarisi, popüler MVC mimarisinden oldukça farklıdır.

MVT mimarisinin şablon bölümü, MVC mimarisindeki görünümle hemen hemen aynı şekilde çalışır, MVT mimarisindeki görünüm, MVC'deki denetleyiciye benzer nitelikleri gösterirken mimari. Ancak, her iki mimarideki modeller de aynı şekilde çalışır.

MVC Mimarisine Giriş: Açıklanan Örnekler

Anında sonuç almak için Model-View-Controller tasarım ilkelerini kendi programlarınıza uygulayın. İşte nasıl başlayacağınız.

Sonrakini Oku

PaylaşCıvıldamakE-posta
İlgili konular
  • Programlama
  • Programlama
  • piton
Yazar hakkında
Kadeisha Kean (46 Makale Yayımlandı)

Kadeisha Kean, Full-Stack Yazılım Geliştirici ve Teknik/Teknoloji Yazarıdır. En karmaşık teknolojik kavramların bazılarını basitleştirme konusunda belirgin bir yeteneğe sahiptir; herhangi bir teknoloji acemi tarafından kolayca anlaşılabilecek malzeme üretmek. Yazmak, ilginç yazılımlar geliştirmek ve dünyayı gezmek (belgeseller aracılığıyla) konusunda tutkulu.

Kadeisha Kean'dan Daha Fazla

Haber bültenimize abone ol

Teknik ipuçları, incelemeler, ücretsiz e-kitaplar ve özel fırsatlar için bültenimize katılın!

Abone olmak için buraya tıklayın