Aplikacje Django: wszystko, co musisz wiedzieć w 2022 roku
Opublikowany: 2021-01-04Django to jeden z najlepszych frameworków Pythona stworzonych przez profesjonalistów, który zachęca twórców stron internetowych do pragmatycznego projektowania i szybkiego rozwoju. Jest szybki, bezpieczny i lubiany przez twórców stron internetowych. Django posiada rejestr już zainstalowanych aplikacji, który przechowuje konfigurację i pomaga w zapewnieniu introspekcji. Utrzymuje obszerną listę dostępnych modeli. Rejestr nazywa się aplikacjami. Aplikacje Django są dostępne w 'django.apps'
>>> z django.apps importuj aplikacje
>>> apps.get_app_config('admin').verbose_name
'Administracja'
Spis treści
Projekty Django
Wszelkie aplikacje Django można nazwać projektem. Definiuje go moduł ustawień. Zawiera jednak również kilka innych rzeczy. Na przykład, jeśli uruchomisz django-admin startproject mysite, otrzymasz katalog projektu mysite. Będzie on zawierał pakiet mysite Python z setting.py, urls.py, asgi.py i wsgi.py. Pakiet często można rozszerzyć tak, aby zawierał CSS, osprzęt i inne szablony nie związane z żadną konkretną aplikacją.
Katalog główny projektu lub ten, który ma manage.py zwykle zawiera wszystkie aplikacje projektu, które nie są oddzielnie instalowane.

Aplikacje Django
Aplikacja oznacza pakiet Pythona, który posiada pewne funkcje. Może być ponownie wykorzystany w kilku projektach. Aplikacje mogą być kombinacjami widoków, modeli, szablonów URL, plików statycznych itp. Często są one połączone w projektach z ustawieniem INSTALLED-APPS . Często może być połączony z innymi mechanizmami opcjonalnie, takimi jak URLconfs, który jest ustawieniem MIDDLEWARE .
Przeczytaj: Wynagrodzenie programisty Django w Indiach
Aplikacja Django to zestaw kodu, który tworzy interakcje z kilkoma częściami określonego frameworka. Nie ma obiektu Application. Czasami Django może potrzebować interakcji z niektórymi aplikacjami w celu introspekcji lub konfiguracji. Stąd w AppConfig są metadane dla zainstalowanych aplikacji. Pakiet projektu może być również traktowany jako aplikacja i może również zawierać modele.
Konfiguracja aplikacji Django
Jeśli chcesz skonfigurować aplikację, musisz dodać podklasę AppConfig , a następnie dodać kropkowaną linię do tej w INSTALLED_Apps. Gdy pojawi się linia przerywana, Django zaczyna sprawdzać zmienną default_app_config . Po zdefiniowaniu staje się podklasą AppConfig dla tej konkretnej aplikacji. Jeśli nie zostanie utworzony default_app_config , Django użyje bazowej klasy AppConfig .
Przeczytaj także: Różnica między pełnym stosem a średnim stosem
Dla autorów aplikacji Django
Załóżmy, że tworzysz wtykowa aplikację „Rock 'n' roll”. Następnie możesz opracować nazwę w następujący sposób:
# rock_n_roll/apps.py
z django.apps importuj AppConfig
klasa RockNRRollConfig(AppConfig):
nazwa = 'rock_n_roll'
verbose_name = „Rock 'n' roll”
Będziesz mógł również załadować go jako podklasę AppConfig za pomocą:
# rock_n_roll/__init__.py
default_app_config = 'rock_n_roll.apps.RockNRollConfig'
W związku z tym RockNRollConfig może być używany, gdy w zainstalowanych aplikacjach występuje „rock_n_roll”. Pomoże Ci korzystać z funkcji AppConfig bez konieczności dokonywania przez użytkowników aktualizacji w INSTALLED_APPS.
Dla Użytkowników Aplikacji
Załóżmy, że używasz aplikacji Rock 'n' roll w projekcie o nazwie antologia. Teraz chcesz, żeby pojawił się wcześniej jako Jazz Manouche. Możesz więc wykonać następujące kroki:
# antologia/apps.py
z rock_n_roll.apps importuj RockNRrollConfig
class JazzManoucheConfig(RockNRRollConfig):
verbose_name = „Jazz Manouche”
# antologia/ustawienia.py
INSTALLED_APPS = [
'antologia.apps.JazzManoucheConfig',
#…
]
Konfiguracja aplikacji Metadane aplikacji są przechowywane w obiektach konfiguracyjnych aplikacji. Niektóre z tych atrybutów są konfigurowane w podklasach AppConfig i są ustawiane jako tylko do odczytu lub przez Django.
Konfigurowalne atrybuty
Nazwa konfiguracji aplikacji
Ścieżka: django.contrib.admin
Pomaga w zdefiniowaniu aplikacji, w której konfiguracja jest stosowana. Jest ustawiony w podklasach AppConfig. Unikalne w projekcie Django.
Etykieta konfiguracji aplikacji
Imię i nazwisko: administrator
Pomaga w ponownym oznakowaniu aplikacji, zwłaszcza jeśli dwie z nich mają sprzeczne etykiety. Domyślnie staje się ostatnim składnikiem nazwy. Musi być prawidłowym identyfikatorem Pythona. Unikalne w projektach Django.

AppConfig.verbose_name
Nazwa: Administracja
Domyślnie: label.title()
Ścieżka.konfiguracji aplikacji
Przykład katalogu aplikacji: '/usr/lib/pythonX.Y/dist-packages/django/contrib/admin'
W wielu przypadkach Django może go wykryć i ustawić automatycznie, ale możesz nadpisać atrybut class jawnie za pomocą podklasy AppConfig.
Atrybuty tylko do odczytu
AppConfig.moduł
Przykład modułu głównego: <moduł 'django.contrib.admin' z 'django/contrib/admin/__init__.py'>
AppConfig.models_module
Przykład modułu z modelami: <moduł 'django.contrib.admin.models' z 'django/contrib/admin/models.py'>
Może również mieć wartość Brak, jeśli nie zawiera modeli.
Metody
AppConfig.get_models()
Pomoże to zwrócić iterowalną klasę Model do aplikacji. Będzie to wymagało całkowitego wypełnienia rejestru aplikacji.
AppConfig.get_model
Zwraca określony model z nieuwzględniającą wielkości liter: nazwa_modelu. Nazwa modelu
Pomaga podnieść LookupError, jeśli nie istnieje żaden konkretny model. Będzie to wymagało całkowitego wypełnienia rejestru aplikacji.
Konfiguracja aplikacji.gotowa()
Może pomóc ominąć metodę, a tym samym wykonać zadania inicjalizacji, takie jak rejestrowanie sygnałów. Można go wywołać po całkowitym zapełnieniu rejestru. Nie można jednak importować modeli na poziomie modułu, w którym zdefiniowane są klasy AppConfig. Możesz je jednak zaimportować w ready(), który używa instrukcji get_model() lub import.
Pakiety przestrzeni nazw używane jako aplikacje
Gdy pakiet Pythona nie posiada __init__.py, są one znane jako pakiety przestrzeni nazw. Mogą być rozmieszczone w kilku katalogach i lokalizacjach w sys.path. Aplikacja Django będzie potrzebowała systemu plików opartego na znakach, w którym Django na podstawie konfiguracji będzie szukało statycznych zasobów, szablonów itp. Dlatego aplikacja Django może być używana tylko wtedy, gdy jeden z nich jest spełniony:
- Pakiet przestrzeni nazw ma jedną lokalizację.
- Klasa AppConfig, która służy do konfigurowania aplikacji, posiada atrybut klasy ścieżki.
Jeśli żaden z warunków nie zostanie spełniony, Django wyświetli komunikat Niewłaściwie skonfigurowany.
Rejestr aplikacji Django
Niektóre publiczne API są udostępniane przez rejestr aplikacji. Oto niektóre z metod, choć mogą się one zmienić:
aplikacje.gotowe
Gdy atrybut Boolean jest ustawiony na True, a rejestr jest całkowicie zapełniony i w związku z tym wywoływane są wszystkie metody AppConfig.ready().
apps.get_app_configs()
Będzie zwracał iterację instancji AppConfig.
apps.get_app_config(app_label)
Zwróci AppConfig dla aplikacji, która ma daną etykietę_aplikacji. Jeśli żadna aplikacja nie istnieje, zgłosi LookupError.
apps.is_installed( Będzie sprawdzał, czy nazwa danej aplikacji istnieje w obecnym rejestrze. nazwa_aplikacji będzie pełną nazwą aplikacji, na przykład: django.contrib.admin
apps.get_model ( etykieta_aplikacji , Zwróci model z podaną nazwą modelu i etykietą_aplikacji. Jeśli żadna aplikacja nie istnieje, zgłosi LookupError.
Proces inicjalizacji
Więc teraz pytanie brzmi, jak załadować aplikacje django. Po zainicjowaniu Django django.setup() zapełni rejestr.
konfiguracja( set_prefix=prawda )
Konfiguracje Django występują:
- Przy pierwszym załadowaniu ustawień
- Konfiguracja logowania
- Jeśli set_prefix ma wartość true, prefiks skryptu rewolweru adresu URL staje się FORCE_SCRIPT_NAME, jeśli zdefiniowano lub inaczej.
- Rejestr aplikacji jest inicjowany.
Następuje automatyczne wywołanie funkcji:

- Gdy serwer HTTP działa poprzez obsługę WSGI przez Django
- Gdy wywoływane jest polecenie zarządzania.
Rozwiązywanie problemów
Niektóre typowe problemy, z którymi można się zmierzyć, to:
- AppRegistryNotReady: dzieje się podczas importowania konfiguracji aplikacji lub modułu modeli wyzwala kod, który nie jest zależny od rejestru aplikacji. Jeśli wykonujesz zapytania do bazy danych za pomocą ORM, ten problem może wystąpić.
- ImportError: nie można importować nazwy … – ma miejsce, gdy sekwencje importu kończą się pętlą. Możesz wyeliminować ten proces, minimalizując zależności między modułami modeli.
- Django.contrib.admin powoduje automatyczne wykrywanie modułów administracyjnych. Zmień INSTALLED_APPS z django.contrib.admin na django.contrib.admin.apps.SimpleAdminConfig, aby temu zapobiec.
Mamy nadzieję, że teraz możesz łatwo zintegrować aplikacje Django z tworzeniem stron internetowych.
Pobierz kurs rozwoju oprogramowania z najlepszych światowych uniwersytetów. Zdobywaj programy Executive PG, Advanced Certificate Programs lub Masters Programs, aby przyspieszyć swoją karierę.
Wniosek
Jeśli chcesz dowiedzieć się więcej o Django i innych językach i narzędziach programistycznych z pełnym stosem, sprawdź program Executive PG UpGrad i IIIT-B w zakresie tworzenia oprogramowania z pełnym pakietem, który jest przeznaczony dla pracujących profesjonalistów i oferuje ponad 500 godzin rygorystycznego szkolenia, Ponad 9 projektów i zadań, status absolwentów IIIT-B, praktyczne praktyczne projekty zwieńczenia i pomoc w pracy z najlepszymi firmami.
