Django je bezplatný a open-source webový framework vytvorený v jazyku Python. Django, prvýkrát vydaný v roku 2005, stelesňuje motto „rýchly vývoj a čistý, pragmatický dizajn“. Tento framework, nasadený na webovom serveri, dokáže rýchlo vytvoriť webový front-end s bohatými funkciami, bezpečnosťou a škálovateľnosťou.
Každá webová aplikácia sa pri svojom obsahu spolieha na databázy. Django, ako moderný framework, podporuje množstvo štandardných databázových programov, napríklad PostgreSQL, SQLite, MySQL, atď. Tento návod ukáže, ako pripojiť aplikáciu Django k databáze v MySQL.
Požiadavky
Ak chcete postupovať podľa tohto návodu, musíte pred prechodom na Django a pripojenie k databáze splniť určité podmienky:
- Vhodný webový server. V tomto návode budeme používať Ubuntu server.
- Správne nakonfigurované vývojové prostredie Python 3.
- Databázová aplikácia. Tu je podrobný návod na inštaláciu a používanie MySQL.
Inštalácia a konfigurácia Pythonu 3
Django je napísaný v Pythone. Spustenie akejkoľvek aplikácie v Pythone vyžaduje, aby boli v systéme nainštalované binárne súbory Pythonu. Ubuntu sa dodáva s predvolene nainštalovaným Pythonom. Tu budeme používať Python 3. Z terminálu spustite nasledujúce príkazy. Najprv aktualizujte vyrovnávaciu pamäť APT a aktualizujte (ak sú k dispozícii) všetky nainštalované balíky:
|
1 |
$ sudo apt update && sudo apt upgrade -y |
Python 3 je priamo dostupný z oficiálnych serverov s balíkmi Ubuntu. Balík
python-is-python3 vytvorí symbolický odkaz python na binárny súbor
python3 pre jednoduchšie použitie:
|
1 |
$ sudo apt install python3 python-is-python3 |
Ďalej overte, či bola inštalácia úspešná:
|
1 2 |
$ python3 --version $ python --version |
Potom potrebujeme pip. Je to štandardný správca balíkov pre Python. Zodpovedá za správu dodatočných knižníc Pythonu, ktoré nie sú súčasťou štandardnej knižnice. Upozorňujeme, že inštalujeme pip3 (pre Python 3):
|
1 |
$ sudo apt install python3-pip |
Na záver potrebujeme niekoľko ďalších balíkov pre robustné programovacie prostredie:
|
1 |
$ sudo apt install build-essential libssl-dev libffi-dev python3-dev |
Inštalácia a konfigurácia MySQL
Táto časť stručne ukáže inštaláciu a konfiguráciu MySQL. Je k dispozícii z predvolených repozitárov balíkov Ubuntu:
|
1 |
$ sudo apt install mysql-server |
Ak bola inštalácia úspešná, MySQL začne bežať na pozadí. Overte, či funguje správne:
|
1 |
$ systemctl status mysql |
Server MySQL je spustený a beží. Teraz môžeme bezpečne prejsť k vývoju našej aplikácie Django.
Práca s Django
-
Vytvorenie ukážkovej aplikácie Django
Základ našej webovej aplikácie vyžaduje kostru projektu Django. Obsahuje všetky potrebné nástroje a knižnice potrebné na vytvorenie robustnej webovej aplikácie. Najprv vytvoríme vyhradený adresár pre našu aplikáciu Django. Odporúča sa pomenovať adresár zmysluplne a v súlade s aplikáciou, ktorú sa chystáme vytvoriť. V tejto ukážke ho pomenujeme myDemoApp:
|
1 |
$ mkdir -pv myDemoApp |
Potrebujeme modul Pythonu venv na vytvorenie virtuálneho prostredia v rámci adresára. Nainštalujte modul pomocou APT:
|
1 |
$ sudo apt install python3-venv |
Potom prejdite do adresára a vytvorte virtuálne prostredie. Pre prehľadnosť sme prostredie pomenovali demoapp_env:
|
1 |
$ python3 -m venv demoapp_env |
Ďalej aktivujte virtuálne prostredie spustením skriptu activate:
|
1 |
$ . demoapp_env/bin/activate |
Teraz nainštalujeme Django v rámci tohto vyhradeného virtuálneho prostredia. Pip stiahne a nainštaluje niekoľko ďalších komponentov:
|
1 |
$ pip install django |
Django je nainštalovaný a pripravený na použitie. Zavolajte príkaz django-admin na vytvorenie nového projektu Django. Potom dajte aplikácii vhodný názov:
|
1 |
$ django-admin startproject demoapp |
Vytvorí to demo projekt s potrebnými projektovými súbormi a adresármi:
|
1 |
$ ls -l |
Kostra projektu je pripravená. Ďalej ju musíme správne nakonfigurovať, aby sme dosiahli náš cieľ.
-
Úprava nastavení projektu Django
Všetky konfigurácie projektu sú uložené v súbore settings.py. Nachádza sa v adresári projektu Django. Začneme nastavením správneho časového pásma a zoznamu hostiteľov, ktorí sa môžu pripojiť k aplikácii Django. Otvorte konfiguračný súbor v textovom editore:
|
1 |
$ nano ~/myDemoApp/demoapp/demoapp/settings.py |
Prejdite v skripte nadol a nájdite položku TIME_ZONE. Pre demonštráciu je časové pásmo nastavené na America/New_York:
|
1 |
$ TIME_ZONE = 'America/New_York' |
Pre referenciu, nasledujúci príkaz vypíše všetky podporované časové pásma v Linuxe:
|
1 |
$ timedatectl list-timezones |
Ďalej prejdite na položku ALLOWED_HOSTS. Riadi, ktoré stroje môžu k aplikácii pristupovať. Pre demonštráciu obsahuje iba localhost:
|
1 |
$ ALLOWED_HOSTS = ['localhost'] |
Potom súbor uložte a zatvorte editor. Nasledujúci príkaz aplikuje zmeny:
|
1 |
$ python manage.py migrate |
Teraz musíme vytvoriť administrátorský účet pre webovú aplikáciu. Tento účet sa bude používať na prístup do administrátorského rozhrania Django. Spustite nasledujúci príkaz:
|
1 |
$ python manage.py createsuperuser |
Požiada o používateľské meno, e-mail a heslo. Aplikácia je teraz pripravená na pripojenie k databáze.
Pripojenie k MySQL
-
Inštalácia konektorov MySQL a vývojových knižníc
Na integráciu MySQL do aplikácie Django potrebujeme ďalšie knižnice Python 3, ktoré poskytnú potrebné nástroje. Budeme používať databázový konektor mysqlclient. Je to fork projektu MySQLdb.
Uistite sa, že máme python3-dev nainštalovaný:
|
1 |
$ sudo apt install python3-dev |
Potrebujeme tiež ďalšie hlavičkové súbory a knižnice pre Python a MySQL:
|
1 |
$ sudo apt install python3-dev libmysqlclient-dev default-libmysqlclient-dev |
Po dokončení inštalácie použite pip na inštaláciu modulu Pythonu mysqlclient. Môže to vygenerovať nejaké chybové správy, ktoré môžete ignorovať:
|
1 |
$ pip install mysqlclient |
-
Konfigurácia vyhradenej databázy
Ďalším krokom je konfigurácia vyhradenej databázy a databázového používateľa pre našu aplikáciu Django. Spustite MySQL shell ako root používateľ:
|
1 |
$ sudo mysql -u root |
Ak chcete skontrolovať všetky aktuálne dostupné databázy, spustite nasledujúci dopyt:
|
1 |
$ SHOW DATABASES; |
Vytvorme vyhradenú databázu pre našu aplikáciu Django. Dajte jej vhodný názov, ktorý je v súlade s názvom projektu:
|
1 |
$ CREATE DATABASE demoapp_data; |
Potom overte vytvorenie:
|
1 |
$ SHOW DATABASES; |
Teraz vytvorte vyhradeného používateľa MySQL. Tohto používateľa nakonfigurujeme ako vlastníka databázy. Aplikácia Django bude používať prihlasovacie údaje tohto používateľa na prácu s databázou MySQL:
|
1 |
$ CREATE USER 'demoapp_user'@'%' IDENTIFIED WITH mysql_native_password BY 'password123'; |
Udeľte používateľovi demoapp_user plné oprávnenia nad databázou demoapp_data:
|
1 |
$ GRANT ALL ON demoapp_data.* TO 'demoapp_user'@'%'; |
Aby sa zmeny oprávnení prejavili, znova načítajte tabuľky oprávnení MySQL:
|
1 |
$ FLUSH PRIVILEGES; |
Databáza je teraz pripravená na pripojenie k aplikácii Django.
-
Pripojenie databázy k aplikácii Django
Nakoniec nakonfigurujeme aplikáciu Django tak, aby používala databázu na ukladanie dát. Otvorte konfiguračný skript settings.py:
|
1 |
$ nano ~/myDemoApp/demoapp/demoapp/settings.py |
Prejdite nadol na položku DATABASES a zadajte nasledujúci 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 súbor a zatvorte editor. Ďalším krokom je nastavenie konfiguračného súboru popísaného v predchádzajúcom kóde. Použite sudo na otvorenie textového súboru v popísanom umiestnení:
|
1 |
$ sudo nano /etc/mysql/my.cnf |
Tento konfiguračný súbor bude obsahovať informácie o databáze vyhradenej pre Django a o používateľovi, ktorého sme vytvorili v MySQL serveri. Na koniec súboru pridajte nasledujúce riadky:
|
1 2 3 4 5 |
[client] database = demoapp_data user = demoapp_user password = password123 default-character-set = utf8 |
Aby sa zmeny prejavili, musíme reštartovať MySQL server:
|
1 2 |
$ sudo systemctl daemon-reload $ sudo systemctl restart mysql |
-
Testovanie pripojenia k MySQL
Teraz je čas overiť, či pripojenie k MySQL funguje správne. Ak server Django beží bez problémov, potom pripojenie funguje správne. V opačnom prípade je niečo zle. Najprv aplikujte všetky zmeny vykonané v projekte Django:
|
1 |
$ python manage.py migrate |
Teraz prejdite do nasledujúceho adresára projektu a spustite server Django:
|
1 2 |
$ cd ~/myDemoApp/demoapp $ python manage.py runserver <server_ip_address>:8000 |
Ďalej sa pokúste o prístup k serveru z webového prehliadača:
|
1 |
$ http://<server_ip_address>:8000 |
Voilà! Úspešne sme sa dostali na úvodnú stránku Django. To tiež potvrdzuje, že pripojenie k MySQL funguje správne. Po dokončení úlohy môžete bezpečne opustiť virtuálne prostredie:
|
1 |
$ deactivate |
Záverečné myšlienky
V tejto príručke ste sa naučili základy prepojenia Django a MySQL. Vytvorili sme aplikáciu Django a ukázali sme, ako ju pripojiť k databáze MySQL. Kúzlo spočíva v konfiguračnom súbore Django settings.py. Upravili sme tiež niektoré základné nastavenia ako ALLOWED_HOSTS a TIME_ZONE. Django je neuveriteľne flexibilný. Okrem MySQL podporuje aj iné SQL servery ako PostgreSQL, serverové nástroje ako Nginx atď.
Môžete si tiež pozrieť naše príručky o osvedčených postupoch pri inštalácii, konfigurácii a práci s Django:
- Inštalácia webového frameworku Django na Ubuntu 20.04
- Nastavenie Django s PostgreSQL, Nginx a Gunicorn na Ubuntu 20.04
- Vytváranie modelov Django: Návod
Príjemnú prácu s počítačom!





Komentáre
Zatiaľ žiadne komentáre. Buďte prvý.