Django Uygulamaları: 2022'de Bilmeniz Gereken Her Şey
Yayınlanan: 2021-01-04Django, web geliştiricileri için pragmatik tasarımı ve hızlı gelişimi teşvik eden profesyoneller tarafından oluşturulmuş en iyi python çerçevelerinden biridir. Hızlı, güvenli ve web geliştiricileri arasında favori. Django, yapılandırmayı depolayan ve iç gözlem sağlamaya yardımcı olan, önceden yüklenmiş uygulamaların bir kaydına sahiptir. Mevcut modellerin kapsamlı bir listesini tutar. Kayıt defterine uygulamalar denir. Django uygulamaları 'django.apps' içinde mevcuttur
>>> Django.apps'den uygulamaları içe aktarın
>>> apps.get_app_config('admin').verbose_name
'Yönetim'
İçindekiler
Django Projeleri
Herhangi bir Django uygulaması proje olarak adlandırılabilir. Bir ayar modülü tarafından tanımlanır. Bununla birlikte, başka birçok şeyi de içerir. Örneğin, Django-admin startproject mysite'yi çalıştırırsanız, bir mysite proje dizini alırsınız. Bu , settings.py, urls.py, asgi.py ve wsgi.py içeren bir mysite Python paketi içerecektir. Paket genellikle CSS, fikstür ve herhangi bir özel uygulama ile ilişkili olmayan diğer şablonları içerecek şekilde genişletilebilir.
Projenin kök dizini veya manager.py içeren dizin genellikle ayrı olarak yüklenmeyen tüm proje uygulamalarını içerir.

Django Uygulamaları
Uygulama, bazı özelliklere sahip bir Python paketi anlamına gelir. Birkaç projede tekrar kullanılabilir. Uygulamalar, görünümlerin, modellerin, şablon URL'lerinin, statik dosyaların vb. kombinasyonları olabilir. Bunlar genellikle INSTALLED-APPS ayarına sahip projelerde kablolanır. Genellikle, isteğe bağlı olarak, MIDDLEWARE ayarı olan URLconfs gibi diğer mekanizmalarla kablolanabilir.
Okuyun: Hindistan'da Django Geliştirici Maaşı
Django uygulaması, belirli bir çerçevenin çeşitli bölümleriyle etkileşimler oluşturan bir kod kümesidir. Application nesnesi yoktur. Bazen, Django'nun iç gözlem veya yapılandırma için belirli uygulamalarla etkileşime girmesi gerekebilir. Bu nedenle, yüklü uygulamalar için AppConfig içinde meta veriler vardır. Bir proje paketi de bir uygulama olarak kabul edilebilir ve modelleri de olabilir.
Django Uygulamalarını Yapılandırma
Bir uygulamayı yapılandırmak istiyorsanız, AppConfig alt sınıfını oluşturmanız ve ardından buna INSTALLED_Apps içinde noktalı bir çizgi eklemeniz gerekir . Noktalı çizgiyi aldığında, Django default_app_config değişkenini kontrol etmeye başlar. Bir kez tanımlandığında, o belirli uygulama için AppConfig alt sınıfı olur. default_app_config yapılmadıysa , Django temel AppConfig sınıfını kullanır.
Ayrıca şunu da okuyun: Tam yığın ve Ortalama Yığın arasındaki fark
Django Uygulamalarının Yazarları İçin
Diyelim ki bir 'Rock 'n' roll' takılabilir uygulaması geliştiriyorsunuz. Ardından, aşağıdaki şekilde bir ad geliştirebilirsiniz:
# rock_n_roll/apps.py
django.apps'den AppConfig'i içe aktarın
sınıf RockNRollConfig(AppConfig):
isim = 'rock_n_roll'
verbose_name = "Rock 'n' roll"
Ayrıca, aşağıdakileri kullanarak bir AppConfig alt sınıfı olarak yükleyebileceksiniz:
# rock_n_roll/__init__.py
default_app_config = 'rock_n_roll.apps.RockNRollConfig'
Bu nedenle, RockNRollConfig, Yüklü Uygulamalarda 'rock_n_roll' mevcut olduğunda kullanılabilir. Kullanıcıların INSTALLED_APPS'de güncelleme yapmasına gerek kalmadan AppConfig özelliklerinden yararlanmanıza yardımcı olacaktır.
Uygulama Kullanıcıları İçin
Diyelim ki antoloji adlı bir projede Rock 'n' roll uygulamasını kullanıyorsunuz. Şimdi, ondan önce Jazz Manouche olarak gelmesini istiyorsunuz. Yani, şu adımları takip edebilirsiniz:
# antology/apps.py
rock_n_roll.apps'den RockNRollConfig'i içe aktarın
class JazzManoucheConfig(RockNRollConfig):
verbose_name = "Caz Manouche"
# antology/settings.py
INSTALLED_APPS = [
'anthology.apps.JazzManoucheConfig',
#…
]
sınıf AppConfig
Bir uygulamaya ilişkin meta veriler, uygulama yapılandırma nesnelerinde depolanır. Bu özniteliklerden bazıları AppConfig alt sınıflarında yapılandırılır ve salt okunur olarak veya Django tarafından ayarlanır.
Yapılandırılabilir özellikler
UygulamaYapılandırması.adı
Yol: django.contrib.admin
Yapılandırmanın uygulandığı uygulamanın tanımlanmasına yardımcı olur. AppConfig alt sınıflarında ayarlanır. Django projesinde benzersiz.

AppConfig.label
isim: yönetici
Özellikle ikisinde çakışan etiketler varsa, bir uygulamanın yeniden etiketlenmesine yardımcı olur. Varsayılan olarak bir adın son bileşeni olur. Geçerli bir Python tanımlayıcısı olmalıdır. Django projelerinde benzersiz.
AppConfig.verbose_name
İsim: Yönetim
Varsayılan: label.title()
AppConfig.path
Uygulama dizini örneği: '/usr/lib/pythonX.Y/dist-packages/django/contrib/admin'
Çoğu durumda, Django bunu otomatik olarak algılayabilir ve ayarlayabilir, ancak sınıf özniteliğini AppConfig alt sınıfı aracılığıyla açıkça geçersiz kılabilirsiniz.
Salt okunur nitelikler
AppConfig.module
Kök modül örneği: 'django/contrib/admin/__init__.py' adresinden <modül 'django.contrib.admin'>
AppConfig.models_module
Model örneği içeren modül: <module 'django.contrib.admin.models', 'django/contrib/admin/models.py'>
Model içermiyorsa Yok da olabilir.
yöntemler
AppConfig.get_models()
Uygulama için yinelenebilir bir Model sınıfı döndürmeye yardımcı olacaktır. Uygulama kayıt defterinin tamamen doldurulmasını gerektirecektir.
AppConfig.get_model
Büyük/küçük harf duyarlı olmayan belirli modeli döndürür: model_name. Model adı
Belirli bir model yoksa bir LookupError oluşturmaya yardımcı olur. Uygulama kayıt defterinin tamamen doldurulmasını gerektirecektir.
AppConfig.ready()
Yöntemi geçersiz kılmaya ve dolayısıyla sinyalleri kaydetme gibi başlatma görevlerini gerçekleştirmeye yardımcı olabilir. Kayıt defteri tamamen doldurulduğunda çağrılabilir. Ancak, modelleri AppConfig sınıflarının tanımlandığı modül düzeyinde içe aktaramazsınız. Ancak bunları get_model() veya import ifadesini kullanan hazır() içinde içe aktarabilirsiniz.
Uygulama Olarak Kullanılan Ad Alanı Paketleri
Python paketinde __init__.py yoksa, bunlar ad alanı paketleri olarak bilinir. sys.path üzerinde birkaç dizine ve konuma yayılabilirler. Django uygulaması, yapılandırmaya dayalı olarak Django'nun statik varlıkları, şablonları vb. arayacağı bir işaret tabanlı dosya sistemine ihtiyaç duyacaktır. Dolayısıyla, Django uygulaması yalnızca bunlardan biri doğruysa kullanılabilir:
- Ad alanı paketinin tek bir konumu vardır.
- Uygulamayı yapılandırmak için kullanılan AppConfig sınıfı, bir yol sınıfı özniteliğine sahiptir.
Koşullardan hiçbiri karşılanmazsa, Django ImproperlyConfigured gösterecektir.
Django Uygulamaları Kayıt Defteri
Belirli genel API, uygulama kayıt defteri tarafından sağlanır. Bunlar, değişebilecek olsalar da, yöntemlerden bazılarıdır:
uygulamalar.hazır
Boolean özniteliği True olarak ayarlandığında ve kayıt defteri tamamen doldurulduğunda ve tüm AppConfig.ready() yöntemleri bu nedenle çağrılır.
apps.get_app_configs()
Yinelenebilir bir AppConfig örneği döndürecek.
apps.get_app_config(app_label)
Belirli bir app_label'e sahip uygulama için bir AppConfig döndürür. Hiçbir uygulama yoksa, bir LookupError oluşturacaktır.
apps.is_installed( Mevcut kayıt defterinde verilen uygulamanın bir adının olup olmadığını kontrol edecektir. app_name bir uygulamanın tam adı olacak, örneğin: Django.contrib.admin
apps.get_model( Modeli verilen model_name ve app_label ile döndürür. Hiçbir uygulama yoksa, bir LookupError oluşturacaktır.
başlatma süreci
Şimdi soru, Django uygulamalarının nasıl yükleneceğidir. Django başlatıldığında, Django.setup() kayıt defterini dolduracaktır.
kurulum( set_prefix=Doğru )
Django yapılandırmaları oluşur:
- Ayarların ilk yüklenmesiyle
- Oturum açma kurulumu
- set_prefix true ise, URL revolver komut dosyası öneki, tanımlanmışsa veya başka bir şekilde FORCE_SCRIPT_NAME olur.
- Uygulama kayıt defteri başlatılır.
Otomatik işlev çağrısı gerçekleşir:

- HTTP sunucusu, Django'nun bir WSGI desteği üzerinden çalıştığında
- Yönetim komutu çağrıldığında.
sorun giderme
Birinin karşılaşabileceği bazı yaygın sorunlar şunlardır:
- AppRegistryNotReady: Bir uygulama yapılandırmasının veya model modülünün içe aktarılması sırasında olur, uygulama kayıt defterine bağlı olmayan kodu tetikler. ORM ile veritabanı sorguları yürütürseniz bu sorun ortaya çıkabilir.
- ImportError: isim içe aktarılamıyor… – İçe aktarma dizileri bir döngüde sona erdiğinde gerçekleşir. Model modülleri arasındaki bağımlılıkları en aza indirerek süreci ortadan kaldırabilirsiniz.
- Django.contrib.admin, yönetici modüllerinin otomatik olarak keşfedilmesine neden olur. Bunu önlemek için INSTALLED_APPS'yi django.contrib.admin'den Django.contrib.admin.apps.SimpleAdminConfig'e değiştirin.
Umarım artık Django uygulamalarını web geliştirmenize kolayca entegre edebilirsiniz.
Dünyanın En İyi Üniversitelerinden Yazılım Geliştirme Kursu Alın . Kariyerinizi hızlandırmak için Yönetici PG Programları, Gelişmiş Sertifika Programları veya Yüksek Lisans Programları kazanın.
Çözüm
Django ve diğer tam yığın geliştirici dilleri ve araçları hakkında daha fazla bilgi edinmek istiyorsanız, upGrad & IIIT-B'nin çalışan profesyoneller için tasarlanmış ve 500 saatten fazla zorlu eğitim sunan Tam Yığın Yazılım Geliştirmede Yönetici PG Programına göz atın. 9+ proje ve ödev, IIIT-B Mezun statüsü, pratik uygulamalı bitirme projeleri ve en iyi firmalarla iş yardımı.
