Django je webový rámec založený na Pythonu, který se řídí modelem šablony zobrazení (MTV). Django je oblíbený nástroj pro vývoj webových stránek, protože umožňuje rychlý vývoj webových stránek.
V tomto tutoriálu vás provedeme, jak nastavit Django. Provedeme vás nejpreferovanějším produkčním nastavením s virtuálním prostředím.
Pokud hledáte VPS poskytovatele pro spouštění vašich aplikací, můžete zkontrolovat nabídky interserveru.
Začněme nastavením.
1 1. Aktualizace systému
sudo apt update -y && apt upgrade -y
2 2. Instalace pipu a virtuálního prostředí
Nejprve zkontrolujte verzi Python3 vašeho systému.
# python3 -V
Python 3.8.10
Nechte nás nainstalovat PIP a Venv.
sudo apt install python3-pip python3-venv
3 3. Vytvořte adresář projektu
Pojďme vytvořit adresář projektu.
sudo mkdir /var/www/django
Změňte adresář na adresář projektu.
cd /var/www/django
Pojďme vytvořit virtuální prostředí.
python3 -m venv django_venv
Aktivujte virtuální prostředí.
source django_venv/bin/activate
4 4. Instalace Django 3.2
Nainstalujeme Django s PIP.
(django_venv) pip install django==3.2
Ověřte instalaci.
(django_venv) django-admin --version
Output:
3.2
5 5. Vytvoření projektu
Pojďme vytvořit projekt Django.
POZNÁMKA: Nezapomeňte na konec přidat tečku (.), abyste se vyhnuli příliš mnoha vnořeným adresářům.
(django_venv) django-admin startproject myproject .
Po vytvoření projektu musíme provést migraci databáze. Nejprve však musíme vytvořit databázi MySQL/MariaDB, než provedeme migraci. Předpokládali jsme, že již máte spuštěnou službu MySQL/MariaDb.
Pojďme vytvořit databázi.
MariaDB [(none)]> create database django;
MariaDB [(none)]> grant all privileges on django.* to 'django'@'localhost' identified by 'mypassword';
MariaDB [(none)]> flush privileges;
MariaDB [(none)]> exit;
Poznámka :Prosím, nezapomeňte změnit heslo s heslem dle vašeho výběru.
Aktualizujte settings.py .
sudo nano myproject/settings.py
Výchozí databáze nastavená v Django je SQLite. Protože nastavujeme produkční web, aktualizujeme jej tak, aby používal MySQL/MariaDB.
Dovolte nám jej aktualizovat pomocí níže:
DATABASES = {
'default': {
'ENGINE' : 'django.db.backends.mysql',
'NAME' : 'django', # database name
'USER' : 'django', # Mysql user
'PASSWORD': 'mypassword', # Mysql password
'HOST' : 'localhost',
'PORT' : '3306',
}
}
Než spustíme migraci, nejprve nainstalujme mysql-config .
Pokud používáte MySQL, spusťte tento příkaz.
sudo apt-get install libmysqlclient-dev
Pokud používáte MariaDB, spusťte toto.
sudo apt-get install libmariadbclient-dev
Poté nainstalujme ovladač Python MySQL.
(django_venv) pip install mysqlclient
Nyní spusťte migraci.
(django_venv) python3 manage.py migrate
Output:
Operations to perform:
Apply all migrations: admin, auth, contenttypes, sessions
Running migrations:
Applying contenttypes.0001_initial... OK
Applying auth.0001_initial... OK
Applying admin.0001_initial... OK
Applying admin.0002_logentry_remove_auto_add... OK
Applying admin.0003_logentry_add_action_flag_choices... OK
Applying contenttypes.0002_remove_content_type_name... OK
Applying auth.0002_alter_permission_name_max_length... OK
Applying auth.0003_alter_user_email_max_length... OK
Applying auth.0004_alter_user_username_opts... OK
Applying auth.0005_alter_user_last_login_null... OK
Applying auth.0006_require_contenttypes_0002... OK
Applying auth.0007_alter_validators_add_error_messages... OK
Applying auth.0008_alter_user_username_max_length... OK
Applying auth.0009_alter_user_last_name_max_length... OK
Applying auth.0010_alter_group_name_max_length... OK
Applying auth.0011_update_proxy_permissions... OK
Applying auth.0012_alter_user_first_name_max_length... OK
Applying sessions.0001_initial... OK
6 6. Přístup k aplikaci Django
Než budeme mít přístup k naší aplikaci Django, musíme přidat naši IP adresu nebo doménu do ALLOWED_HOSTS v settings.py . Nechte nás aktualizovat settings.py.
sudo nano myproject/settings.py
Přejděte na „ALLOWED_HOSTS “.
ALLOWED_HOSTS = ['your_server_ip', 'domain.com']
Aktualizujte „ip_vašeho_serveru “ a „domena.com ” s vaší IP adresou a doménou a poté uložte.
Než budeme mít přístup k naší aplikaci Django, musíme tento příkaz spustit.
python3 manage.py runserver 0.0.0.0:8000
Nyní můžete přistupovat ke své aplikaci Django na adrese http://IPaddress:8000
Dovolte nám vytvořit uživatele Admin pro náš projekt
(django_venv) python3 manage.py createsuperuser
Po spuštění příkazu zadejte své uživatelské jméno, e-mail a heslo správce.
7 7. Nastavení produkce pomocí Apache a WSGI
Pro nastavení produkce nainstalujeme Apache a modul Apache mod_wsgi.
sudo apt-get install apache2 libapache2-mod-wsgi-py3
Pojďme vytvořit virtuálního hostitele.
sudo nano /etc/apache2/sites-available/django.conf
Přidejte následující do virtuálního hostitele.
Poznámka:Nezapomeňte nahradit doménu.com s vlastní doménou.
<VirtualHost *:80>
ServerName domain.com
ServerAlias www.domain.com
DocumentRoot /var/www/django
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
Alias /static/ /var/www/django/myproject/static/
<Directory /var/www/django/myproject/static>
Require all granted
</Directory>
Alias /media/ /var/www/django/myproject/media/
<Directory /var/www/django/myproject/media>
Require all granted
</Directory>
<Directory /var/www/django/myproject>
<Files wsgi.py>
Require all granted
</Files>
</Directory>
WSGIDaemonProcess mydjangoproject python-path=/var/www/django python-home=/var/www/django/django_venv
WSGIProcessGroup mydjangoproject
WSGIScriptAlias / /var/www/django/myproject/wsgi.py
</VirtualHost>
Nechte nás aktivovat virtuálního hostitele:
sudo a2ensite django.conf
Restartujte webový server Apache.
sudo systemctl restart apache2
Nyní znovu upravme settings.py aby náš webový server obsluhoval statické soubory.
sudo nano myproject/settings.py
Na začátek souboru přidejte:
import os
Poté přejděte na “ statické soubory “ a nezapomeňte přidat tyto hodnoty:
PROJECT_ROOT =os.path.dirname(os.path.abspath(__file__))
STATIC_ROOT =os.path.join(PROJECT_ROOT, ‘statický’)
Mělo by to vypadat níže.
# Static files (CSS, JavaScript, Images)
# https://docs.djangoproject.com/en/3.2/howto/static-files/
PROJECT_ROOT = os.path.dirname(os.path.abspath(__file__))
STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(PROJECT_ROOT, 'static')
Nyní shromážděme veškerý statický obsah.
(django_venv) python3 manage.py collectstatic
Output:
128 static files copied to '/var/www/django/myproject/static'.
Restartujte službu Apache:
sudo systemctl restart apache2
Tím bylo vytvořeno výrobní místo. Nyní můžete přistupovat ke své aplikaci Django se svou doménou na adrese http://domain.com. Pokud chcete zabezpečit svůj web a nainstalovat certifikát SSL, můžete si přečíst tento článek.
8 Závěr
Naučili jste se, jak nainstalovat Django 3.2 na Ubuntu 20.04 s Apache a WSGI. Pokud se vám tento článek líbí, mohly by se vám líbit i naše další články na tomto webu.