Django Uygulamaları: 2022'de Bilmeniz Gereken Her Şey

Yayınlanan: 2021-01-04

Django, 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ı.

Geleceğin Kariyerine Hazırlanın

Yazılım Mühendisliği Yüksek Lisans Programına Hemen Başvur