Django je známý webový framework, který zjednodušuje proces vytváření robustních, škálovatelných, bezpečných a vysoce výkonných webových aplikací. Je to open-source projekt napsaný v jazyce Python. Můžete se podívat na podrobnější informace o Django zde.
Každá webová aplikace vyžaduje databázi jako backend pro správu dat. Django podporuje různé databázové stroje jako backend, například MySQL, PostgreSQL, SQLite atd. PostgreSQL je výkonný, open-source objektově-relační databázový systém. Je známý svou spolehlivostí, škálovatelností, bezpečností a robustní sadou funkcí. Můžete se dozvědět více o PostgreSQL zde.
V této příručce ukážeme integraci PostgreSQL jako backendu na ukázkové aplikaci Django.
Požadavky
Práce s Django vyžaduje určité systémové konfigurace.
- Správně nakonfigurovaný Ubuntu server 21.04. Zjistěte více o nastavení serveru Ubuntu.
- Vývojové prostředí Pythonu. Django je napsáno v Pythonu, takže ke svému spuštění vyžaduje prostředí Pythonu.
- Nainstalovaný PostgreSQL, protože jej budeme používat jako databázový server pro naši aplikaci Django. Zjistěte více o instalaci a konfiguraci PostgreSQL na Ubuntu zde.
Tato příručka také ukáže, jak používat různé moduly a knihovny Pythonu, které jsou nezbytné pro funkční aplikaci Django.
Krok 1. Instalace potřebných komponent
Aby náš projekt fungoval, potřebujeme mít v našem systému Ubuntu nainstalovanou řadu důležitých balíčků. Naštěstí jsou všechny přímo dostupné z oficiálních repozitářů balíčků Ubuntu. Tyto balíčky zahrnují komponenty Pythonu a databázové komponenty (PostgreSQL).
Nejprve spusťte terminál a aktualizujte mezipaměť balíčků APT:
|
1 |
sudo apt update |
Dále nainstalujte balíčky:
|
1 |
sudo apt install python3-pip python3-dev libpq-dev postgresql postgresql-contrib |
Krok 2. Příprava databáze
PostgreSQL je nyní nainstalován a připraven k použití. Dále vytvoříme vyhrazenou databázi a uživatele pro naši aplikaci Django. Mít vyhrazeného uživatele je výhodné pro správu databáze a oprávnění.
Během instalace PostgreSQL vytvoří vyhrazeného uživatele postgres. Ten má oprávnění provádět jakékoli administrativní úkoly v PostgreSQL. Přistupte k postgres účtu:
|
1 |
sudo su – postgres |
Měli byste se ocitnout v nové relaci shellu pod uživatelem postgres. Poté otevřete shell PostgreSQL:
|
1 |
psql |
Nyní vytvoříme vyhrazenou databázi pro naši aplikaci Django. Doporučuje se pojmenovat ji shodně s aplikací Django:
|
1 |
CREATE DATABASE <database_name>; |
Dále vytvoříme vyhrazeného databázového uživatele. Tohoto uživatele budeme používat k přístupu k databázi vyhrazené pro Django:
|
1 |
CREATE USER <username> WITH PASSWORD '<password>'; |
Dalším krokem je úprava několika parametrů připojení pro nového uživatele. To pomáhá urychlit databázové operace, protože nebude nutné dotazovat se na hodnoty při každém navázání připojení. Spusťte následující příkazy:
|
1 2 3 |
ALTER ROLE <username> SET client_encoding TO 'utf8'; ALTER ROLE <username> SET default_transaction_isolation TO 'read committed'; ALTER ROLE <username> SET timezone TO '<timezone>'; |
Pojďme si tyto příkazy stručně rozebrat:
-
Nastavujeme výchozí kódování na UTF-8. To je to, co Django očekává při interakci s databázemi.
-
Výchozí schéma transakcí je nastaveno na „read committed“, takže čtení z nepotvrzených transakcí je blokováno.
-
Časové pásmo by mělo být nastaveno podle umístění.
Pokud si nejste jisti názvem časového pásma, následující příkaz vypíše všechna časová pásma podporovaná PostgreSQL:
|
1 |
SELECT * FROM pg_timezone_names; |
Nakonec udělte novému uživateli plná oprávnění k databázi vyhrazené pro Django:
|
1 |
GRANT ALL PRIVILEGES ON DATABASE <database_name> TO <username>; |
Naše práce s PostgreSQL je nyní hotová. Ukončete psql shell a odhlaste se z postgres relace.
Krok 3. Instalace Django
Nakonfigurovali jsme potřebný databázový server pro naši aplikaci Django. Nyní nainstalujeme a nakonfigurujeme vyhrazenou aplikaci Django. Přestože je Django přímo k dispozici v oficiálním repozitáři Ubuntu, tento způsob nedoporučujeme. Nainstaloval by Django pro celý systém. Pro lepší flexibilitu a snadnější správu raději nainstalujeme Django ve virtuálním prostředí. Instalace a konfigurace Django ve virtuálním prostředí Pythonu je standardním postupem.
Python má modul virtualenv který vytváří virtuální prostředí Pythonu v cílovém umístění. Prostředí získá vlastní kopii binárních souborů a konfigurací Pythonu. Provádění změn ve virtuálním prostředí nebude mít žádný vliv na zbytek systému.
Nainstalujte virtualenv:
|
1 |
sudo apt install virtualenv |
Dále je naším cílem mít vyhrazený adresář pro vytvoření virtuálního prostředí Pythonu. Bude sloužit jako základ pro naši aplikaci Django. Pro účely ukázky bude název naší aplikace sample_app. Vytvořte nový adresář:
|
1 |
mkdir -pv <dir_name> |
Změňte aktuální aktivní adresář a vytvořte virtuální prostředí:
|
1 2 |
cd sample_app/ virtualenv sample_app_env |
Poté virtuální prostředí aktivujte:
|
1 |
source sample_app_env/bin/activate |
Virtuální prostředí je nyní připravené a funkční. Poté použijeme pip k instalaci Django a psycopg2 (adaptér Pythonu pro PostgreSQL):
|
1 |
pip install django psycopg2 |
Nakonec můžeme pomocí nástrojů Django vytvořit nový projekt Django. V aktuálním adresáři se vygeneruje podadresář stejného názvu, který bude obsahovat veškerý kód a spravovací skript:
|
1 |
django-admin startproject <project_name> . |
Krok 4. Konfigurace projektu Django
Projekt Django má všechny základní nástroje pro fungování jako webová aplikace. Abychom jej integrovali s naší databází, budeme muset provést několik úprav v jeho konfiguračních souborech.
Otevřete soubor settings.py v textovém editoru:
|
1 |
nano settings.py |
Přejděte dolů k sekci DATABASES. Ve výchozím nastavení je nakonfigurována pro použití SQLite:
Pro naše účely změňte kód následovně:
|
1 2 3 4 5 6 7 8 9 10 |
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.postgresql_psycopg2', 'NAME': '<db_name>', 'USER': '<db_user>', 'PASSWORD': '<db_user_password>', 'HOST': 'localhost', 'PORT': '', } } |
Zde říkáme Django, aby pro komunikaci s databází použil adaptér psycopg2. Deklarujeme také všechny potřebné informace o databázi, jako je název databáze spolu s uživatelským jménem a heslem vyhrazeného uživatele.
Po dokončení soubor uložte a zavřete editor.
Krok 5. Migrace databáze
Django je nakonfigurován pro přístup k naší databázi PostgreSQL. Nyní můžeme migrovat datovou strukturu do naší databáze. V Django se tomu říká migrace.
Chcete-li migrovat změny v databázi, vyvolejte spravovací skript manage.py:
|
1 |
python manage.py makemigrations |

|
1 |
python manage.py migrate |
Dále vytvořte superuživatele pro naši aplikaci Django:
|
1 |
python manage.py createsuperuser |
Tento účet superuživatele bude sloužit jako administrátorský účet pro naši aplikaci Django.
Krok 6. Testování změn
Dosud jsme v naší aplikaci Django provedli několik úprav. Je čas zkontrolovat, zda vše funguje tak, jak má. Ověříme to spuštěním aplikace a přístupem do administračního panelu.
Protože aplikaci Django vyvíjíme lokálně, spustíme server na localhost. Podle tradice jej spustíme na portu 8000. Pokud máte nakonfigurovaný firewall, musí povolit provoz na portu 8000. Zjistěte více o základech UFW zde.
Spusťte server Django:
|
1 |
python manage.py runserver localhost:8000 |
Otevřete URL v prohlížeči:
|
1 |
http://localhost:8000 |
Měli byste se dostat na stránku o úspěšné instalaci Django. Pro přístup do administračního panelu Django přejděte na následující URL:
|
1 |
http://localhost:8000/admin |
K přihlášení musíte použít superuživatele, kterého jsme vytvořili:
Voila! Úspěšně jsme se dostali do administračního panelu!
Jakmile dokončíte prohlížení, stiskněte Ctrl + C v konzoli pro zastavení serveru Django.
Závěrečné myšlenky
V tomto návodu jsme úspěšně předvedli vytvoření ukázkové aplikace Django a konfiguraci PostgreSQL jako jejího backendu. Zatímco SQLite obecně více než stačí pro potřeby během vývoje (a lehké produkční použití), většina projektů výrazně získá přechodem na plnohodnotnější DBMS. PostgreSQL je skvělou volbou pro výkon a škálovatelnost.
Django je všestranný webový framework, který dokáže spolupracovat s mnoha technologiemi. Podívejte se na další cloudové návody, které demonstrují použití Django:
- Nastavení Django s PostgreSQL, Nginx a Gunicorn na Ubuntu 20.04
- Sestavení aplikace Django a Gunicorn s Dockerem na Ubuntu
- Jak zabezpečit a škálovat aplikaci Django pomocí Dockeru, Nginx a Let’s Encrypt
- Vytvoření aplikace Django s připojením k databázi: Návod
Ať se daří!






















Komentáře
Zatím žádné komentáře. Buďte první.