Django je bezplatný a open-source webový framework vytvořený v jazyce Python. Django, poprvé vydané v roce 2005, se řídí mottem „rychlý vývoj a čistý, pragmatický design“. Tento framework nasazený na webovém serveru dokáže rychle vytvořit webové rozhraní s bohatými funkcemi, zabezpečením a škálovatelností.
Každá webová aplikace spoléhá při ukládání svého obsahu na databáze. Django jako moderní framework podporuje řadu standardních databázových programů, například PostgreSQL, SQLite, MySQL, atd. Tento návod ukáže, jak připojit aplikaci Django k databázi MySQL.
Požadavky
Chcete-li postupovat podle tohoto návodu, musíte před přechodem k připojení Djanga a databáze splnit určité podmínky:
- Vhodný webový server. V tomto návodu budeme používat Ubuntu server.
- Správně nakonfigurované vývojové prostředí Python 3.
- Databázová aplikace. Zde je podrobný návod na instalaci a používání MySQL.
Instalace a konfigurace Pythonu 3
Django je napsáno v Pythonu. Spuštění jakékoli aplikace v Pythonu vyžaduje instalaci binárních souborů Pythonu v systému. Ubuntu se dodává s předinstalovaným Pythonem. Zde budeme používat Python 3. V terminálu spusťte následující příkazy. Nejprve aktualizujte mezipaměť APT a upgradujte (pokud jsou k dispozici) všechny nainstalované balíčky:
|
1 |
$ sudo apt update && sudo apt upgrade -y |
Python 3 je přímo dostupný z oficiálních serverů s balíčky pro Ubuntu. Balíček
python-is-python3 vytvoří symbolický odkaz python na binární soubor
python3 pro snazší použití:
|
1 |
$ sudo apt install python3 python-is-python3 |
Dále ověřte, zda byla instalace úspěšná:
|
1 2 |
$ python3 --version $ python --version |
Poté budeme potřebovat pip. Je to standardní správce balíčků pro Python. Má na starosti správu dalších knihoven Pythonu, které nejsou součástí standardní knihovny. Všimněte si, že instalujeme pip3 (pro Python 3):
|
1 |
$ sudo apt install python3-pip |
Nakonec potřebujeme několik dalších balíčků pro robustní programovací prostředí:
|
1 |
$ sudo apt install build-essential libssl-dev libffi-dev python3-dev |
Instalace a konfigurace MySQL
Tato část stručně ukáže instalaci a konfiguraci MySQL. Je k dispozici ve výchozích repozitářích balíčků Ubuntu:
|
1 |
$ sudo apt install mysql-server |
Pokud byla instalace úspěšná, MySQL se spustí na pozadí. Ověřte, zda funguje správně:
|
1 |
$ systemctl status mysql |
Server MySQL běží. Nyní můžeme bezpečně přejít k vývoji naší aplikace v Djangu.
Práce s Django
-
Vytvoření ukázkové aplikace Django
Základ naší webové aplikace vyžaduje kostru projektu Django. Obsahuje všechny potřebné nástroje a knihovny potřebné k vytvoření robustní webové aplikace. Nejprve vytvoříme vyhrazený adresář pro naši aplikaci Django. Doporučuje se pojmenovat adresář nějak smysluplně a v souladu s aplikací, kterou se chystáme vytvořit. V této ukázce jej pojmenujeme myDemoApp:
|
1 |
$ mkdir -pv myDemoApp |
Potřebujeme modul Pythonu venv pro vytvoření virtuálního prostředí v tomto adresáři. Nainstalujte modul pomocí APT:
|
1 |
$ sudo apt install python3-venv |
Poté přejděte do adresáře a vytvořte virtuální prostředí. Pro přehlednost jsme prostředí pojmenovali demoapp_env:
|
1 |
$ python3 -m venv demoapp_env |
Dále aktivujte virtuální prostředí spuštěním skriptu activate skriptu:
|
1 |
$ . demoapp_env/bin/activate |
Nyní nainstalujeme Django do tohoto vyhrazeného virtuálního prostředí. Pip stáhne a nainstaluje některé další součásti:
|
1 |
$ pip install django |
Django je nainstalováno a připraveno k použití. Voláním příkazu django-admin vytvořte nový projekt Django. Poté dejte aplikaci vhodný název:
|
1 |
$ django-admin startproject demoapp |
Vytvoří demo projekt s potřebnými projektovými soubory a adresáři:
|
1 |
$ ls -l |
Kostra projektu je připravena. Dále ji musíme správně nakonfigurovat, abychom dosáhli našeho cíle.
-
Úprava nastavení projektu Django
Všechny konfigurace projektu jsou uloženy v souboru settings.py. Nachází se v adresáři projektu Django. Začneme nastavením správného časového pásma a seznamu hostitelů, kteří se mohou k aplikaci Django připojit. Otevřete konfigurační soubor v textovém editoru:
|
1 |
$ nano ~/myDemoApp/demoapp/demoapp/settings.py |
Sjeďte v kódu dolů a najděte položku TIME_ZONE. Pro účely demonstrace je časové pásmo nastaveno na America/New_York:
|
1 |
$ TIME_ZONE = 'America/New_York' |
Pro informaci, následující příkaz vypíše všechna podporovaná časová pásma v Linuxu:
|
1 |
$ timedatectl list-timezones |
Dále sjeďte k položce ALLOWED_HOSTS. Ta určuje, které stroje mohou k aplikaci přistupovat. Pro účely demonstrace obsahuje pouze localhost:
|
1 |
$ ALLOWED_HOSTS = ['localhost'] |
Poté soubor uložte a zavřete editor. Následující příkaz provede změny:
|
1 |
$ python manage.py migrate |
Nyní musíme pro webovou aplikaci vytvořit účet administrátora. Tento účet bude sloužit k přístupu do administrátorského rozhraní Django. Spusťte následující příkaz:
|
1 |
$ python manage.py createsuperuser |
Budete požádáni o uživatelské jméno, e-mail a heslo. Aplikace je nyní připravena k připojení k databázi.
Připojení k MySQL
-
Instalace konektorů MySQL a vývojových knihoven
Pro integraci MySQL do aplikace Django potřebujeme některé další knihovny pro Python 3, které poskytnou potřebné nástroje. Budeme používat databázový konektor mysqlclient. Jedná se o fork projektu MySQLdb.
Ujistěte se, že máte nainstalovaný python3-dev:
|
1 |
$ sudo apt install python3-dev |
Potřebujeme také některé další hlavičkové soubory a knihovny pro Python a MySQL:
|
1 |
$ sudo apt install python3-dev libmysqlclient-dev default-libmysqlclient-dev |
Po dokončení instalace použijte pip k instalaci modulu Pythonu mysqlclient. Může to vygenerovat nějaké chybové zprávy, které lze ignorovat:
|
1 |
$ pip install mysqlclient |
-
Konfigurace vyhrazené databáze
Dalším krokem je konfigurace vyhrazené databáze a databázového uživatele pro naši aplikaci Django. Spusťte konzoli MySQL jako uživatel root:
|
1 |
$ sudo mysql -u root |
Chcete-li zkontrolovat všechny aktuálně dostupné databáze, spusťte následující dotaz:
|
1 |
$ SHOW DATABASES; |
Vytvořme vyhrazenou databázi pro naši aplikaci Django. Pojmenujte ji vhodně v souladu s názvem projektu:
|
1 |
$ CREATE DATABASE demoapp_data; |
Poté ověřte vytvoření:
|
1 |
$ SHOW DATABASES; |
Nyní vytvořte vyhrazeného uživatele MySQL. Tohoto uživatele nakonfigurujeme jako vlastníka databáze. Aplikace Django bude používat přihlašovací údaje tohoto uživatele pro práci s databází MySQL:
|
1 |
$ CREATE USER 'demoapp_user'@'%' IDENTIFIED WITH mysql_native_password BY 'password123'; |
Udělte uživateli demoapp_user plná oprávnění k databázi demoapp_data:
|
1 |
$ GRANT ALL ON demoapp_data.* TO 'demoapp_user'@'%'; |
Aby se změny oprávnění projevily, znovu načtěte tabulky oprávnění MySQL:
|
1 |
$ FLUSH PRIVILEGES; |
Databáze je nyní připravena k připojení k aplikaci Django.
-
Připojení databáze k aplikaci Django
Nakonec nakonfigurujeme aplikaci Django tak, aby pro ukládání dat používala databázi. Otevřete konfigurační skript settings.py:
|
1 |
$ nano ~/myDemoApp/demoapp/demoapp/settings.py |
Sjeďte dolů k položce DATABASES a zadejte následující kód:
|
1 2 3 4 5 6 7 8 |
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'OPTIONS': { 'read_default_file': '/etc/mysql/my.cnf', }, } } |
Uložte soubor a zavřete editor. Dalším krokem je nastavení konfiguračního souboru popsaného v předchozím kódu. Použijte sudo k otevření textového souboru v popsaném umístění:
|
1 |
$ sudo nano /etc/mysql/my.cnf |
Tento konfigurační soubor bude obsahovat informace o databázi vyhrazené pro Django a o uživateli, kterého jsme vytvořili v MySQL serveru. Na konec souboru přidejte následující řádky:
|
1 2 3 4 5 |
[client] database = demoapp_data user = demoapp_user password = password123 default-character-set = utf8 |
Aby se změny projevily, musíme restartovat MySQL server:
|
1 2 |
$ sudo systemctl daemon-reload $ sudo systemctl restart mysql |
-
Testování připojení k MySQL
Nyní je čas ověřit, zda připojení k MySQL funguje správně. Pokud server Django běží bez problémů, pak připojení funguje v pořádku. V opačném případě je něco špatně. Nejprve aplikujte všechny změny provedené v projektu Django:
|
1 |
$ python manage.py migrate |
Nyní přejděte do následujícího adresáře projektu a spusťte server Django:
|
1 2 |
$ cd ~/myDemoApp/demoapp $ python manage.py runserver <server_ip_address>:8000 |
Dále se pokuste k serveru přistoupit z webového prohlížeče:
|
1 |
$ http://<server_ip_address>:8000 |
A je to! Úspěšně jsme se dostali na úvodní stránku Django. To také potvrzuje, že připojení k MySQL funguje správně. Po dokončení úkolu můžete bezpečně ukončit virtuální prostředí:
|
1 |
$ deactivate |
Závěrečné myšlenky
V tomto návodu jste se naučili základy propojení Django a MySQL. Vytvořili jsme aplikaci v Django a ukázali si, jak ji připojit k databázi MySQL. Kouzlo spočívá v konfiguračním souboru Django settings.py. Upravili jsme také některá základní nastavení jako ALLOWED_HOSTS a TIME_ZONE. Django je neuvěřitelně flexibilní. Kromě MySQL podporuje také další SQL servery jako PostgreSQL, serverové enginy jako Nginx atd.
Můžete se také podívat na naše návody na osvědčené postupy pro instalaci, konfiguraci a práci s Django:
- Instalace webového frameworku Django na Ubuntu 20.04
- Nastavení Django s PostgreSQL, Nginx a Gunicorn na Ubuntu 20.04
- Vytváření modelů v Django: Návod
Ať se daří!





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