Önkoşullar:
Bu öğreticinin örneklerini uygulamadan önce aşağıdaki görevleri tamamlamanız gerekir:
- Django 3+ sürümünü Ubuntu 20+ üzerine kurun (tercihen)
- Bir Django projesi oluşturun
- Sunucunun düzgün çalışıp çalışmadığını kontrol etmek için Django sunucusunu çalıştırın
Bir Django Uygulaması kurun:
bir. viewapp adlı bir Django uygulaması oluşturmak için aşağıdaki komutu çalıştırın:
$ python3 yönetmek.py startapp viewappB. Django veritabanına erişim için kullanıcı oluşturmak için aşağıdaki komutu çalıştırın. Kullanıcıyı daha önce oluşturduysanız, bu bölümü atlayın:
$ python3 yönetmek.py createsuperuserC. Uygulama adını ayarların INSTALLED_APP bölümüne ekleyin.py dosyası.
INSTALLED_APPS = […
'viewapp'
]
D. adlı bir klasör oluşturun şablonlar içinde görünüm uygulaması klasörünü ayarlayın ve şablonun uygulamanın konumu ŞABLONLAR bir bölümü ayarlar.p dosya.
ŞABLONLAR = [… .
'DIRS': ['/home/fahmida/django_pro/viewapp/templates'],
… .
,
]
Basit işlev tabanlı bir Görünüm oluşturun:
Aç Görüntüleme.p dosyadan görünüm uygulaması klasörünü açın ve bu dosyanın içeriğini aşağıdaki komut dosyasıyla değiştirin. indeks() işlevi, tarayıcıya gönderilecek HTML içeriğini oluşturmak için komut dosyasında kullanılır HttpYanıt() yöntem. Burada, sistemin güncel tarih ve saati kullanılarak okunacaktır bugün() işlevi ve geçerli tarih değeri tarayıcıya gönderilmeden önce oluşturulacaktır.
Görüntüleme.p
# Geçerli tarihi okumak için tarih modülünü içe aktarındatetime içe aktarma tarihinden itibaren
# Görünümden şablona veri göndermek için HttpResponse modülünü içe aktarın
django'dan.http içe aktarma HttpResponse
# İşlev tabanlı görünüm oluşturmak için işlevi tanımlayın
def indeksi(istek):
# Geçerli tarihi oku
bugün = tarih.bugün()
# Görünüm için statik verileri ayarlayın
içerik = "
LinuxHint'e hoş geldiniz
"
içerik += "Bugün " + bugün.strftime("%B") + " " + bugün.strftime("%d") + ", " + str(bugün.yıl) +"
# İçeriği tarayıcıya gönderdi
HttpResponse(içerik) döndür
İçeriğini değiştirin url'ler.p aşağıdaki komut dosyasıyla dosya. Senaryoda, 'Hoşgeldiniz/' yolu çağırmak için tanımlanır dizin() HTML içeriğini şablon dosyasına gönderecek işlev.
url'ler.p
# Yol modülünü içe aktardjango'dan.url'leri içe aktarma yolu
# Görünüm modülünü içe aktar
viewapp içe aktarma görünümlerinden
# İçeriği görüntülemek için dizin yöntemini çağırın
url kalıpları = [
# index() işlevini çağırmak için yolu tanımlayın
path('hoş geldiniz/', görünümler.indeks)
]
Aşağıdaki çıktıyı gösterecek olan tarayıcıdan aşağıdaki URL'yi çalıştırın. Çıktıda biçimlendirilmiş bir başlık metni ve geçerli tarih değeri gösterilir.
http://localhost:8000/hoşgeldiniz/
Basit sınıf tabanlı bir Görünüm oluşturun:
Oluşturmak görünüm2.p viewapp klasörünün içindeki dosya ve aşağıdaki betiği ekleyin. Benim görüşüm class adlı bir yöntemi içeren komut dosyasında tanımlanmıştır almak(). adlı bir liste değişkeni liste verileri 10 rastgele sayıdan oluşan bir liste oluşturmak için komut dosyasında bildirildi. Listenin değerleri şablona şu şekilde iletilecektir: HttpYanıt() bu görünüm çağrıldığında yöntem. rastgele modülü, komut dosyasının her yinelemesinde rastgele bir tamsayı oluşturmak için komut dosyasında kullanılmıştır için kullanarak döngü rasgele() fonksiyon.
görünüm2.p
# Görünümden şablona veri göndermek için HttpResponse modülünü içe aktarındjango'dan.http içe aktarma HttpResponse
# Görünüm modülünü içe aktar
django'dan.görünümleri içe aktar Görünüm
# Rastgele modülü içe aktar
rastgele içe aktar
# Sınıf tabanlı görünümler için sınıf tanımlayın
sınıf MyView(Görünüm):
def get(self, request):
# Liste değişkenini bildir
liste verileri = []
# Listenin ilk öğesini ekleyin
liste verileri.ekle('
10 rastgele sayının listesi:
')# Döngüyü 10 kez yinele
(10) aralığında n için:
# 1 ile 50 arasında rastgele bir sayı üret
rastgele_sayı = rastgele.randint(1, 50)
# Rastgele sayıyı listeye ekleyin
liste verileri.ekle(rastgele_sayı)
# Listeye bir ara elemanı ekleyin
liste verileri.ekle('
')
# Listenin son öğesini ekleyin
liste verileri.ekle('
# Liste değerlerini tarayıcıya gönder
HttpResponse(listdata) döndür
İçeriğini değiştirin url'ler.p aşağıdaki komut dosyasıyla dosya. Senaryoda, “numara/” yolu çağırmak için tanımlanır Benim görüşüm.as_view() listenin verilerini şablon dosyasına gönderecek yöntem.
url'ler.p
# Yol modülünü içe aktardjango'dan.url'leri içe aktarma yolu
# Görünüm modülünü içe aktar
viewapp içe aktarma görünümlerinden
# MyView sınıfını içe aktar
görünüm uygulamasından.görünümler2 MyView'ı içe aktar
# MyView sınıfının get yöntemini çağırın
url kalıpları = [
# index() işlevini çağırmak için yolu tanımlayın
path('hoş geldiniz/', görünümler.indeks),
# MyView'ı aramak için yolu tanımlayın.as_view() yöntemi
yol('sayı/', MyView.as_view()),
]
Aşağıdaki çıktıyı gösterecek olan tarayıcıdan aşağıdaki URL'yi çalıştırın. Listedeki her numara rastgele oluşturulacağından, sayfa yenilenirse çıktının numaraları değişecektir.
http://localhost:8000/sayı/
Sonuç:
Web uygulamasının çıktısı, herhangi bir web uygulamasının önemli bir parçası olan görünüm dosyasının komut dosyasına bağlıdır. İşlev tabanlı görünümler çoğunlukla Django uygulamasının ilk sürümünde kullanılmaktadır ve artık Django'nun çoğu uygulamasında sınıf tabanlı görünümler kullanılmaktadır. Yeni Django kullanıcılarının uygulamalarına göre görünümlerini oluşturmalarına yardımcı olmak için bu eğitimde her iki görünüm türünü oluşturmanın yolları gösterilmiştir.