ΠΠ°ΠΊ Π΄Π° ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°ΠΌΠ΅ Django Π½Π° Ρ ΠΎΡΡΠΈΠ½Π³ ΡΡΡΠ²ΡΡ
ΠΠ°ΠΊ Π΄Π° ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°ΠΌΠ΅ Django Π½Π° Ρ ΠΎΡΡΠΈΠ½Π³ ΡΡΡΠ²ΡΡ
Django Π΅ ΡΠ΅Π± ΡΠ°ΠΌΠΊΠ° Π½Π° Python ΠΎΡ Π²ΠΈΡΠΎΠΊΠΎ Π½ΠΈΠ²ΠΎ, ΠΊΠΎΡΡΠΎ Π½Π°ΡΡΡΡΠ°Π²Π° Π±ΡΡΠ·ΠΎΡΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ²Π°Π½Π΅ ΠΈ ΠΈΠ·ΡΠΈΡΡΠ΅Π½ΠΈΡ, ΠΏΡΠ°Π³ΠΌΠ°ΡΠΈΡΠ΅Π½ Π΄ΠΈΠ·Π°ΠΉΠ½. Π’Ρ Π΅ Π΅Π΄ΠΈΠ½ ΠΎΡ Π½Π°ΠΉ-ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΠΈΡΠ΅ ΠΈΠ·Π±ΠΎΡΠΈ Π·Π° ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ Π½Π° ΠΌΠ°ΡΠ°Π±ΠΈΡΡΠ΅ΠΌΠΈ, ΡΠΈΠ³ΡΡΠ½ΠΈ ΠΈ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°Π½ΠΈ ΡΠ΅Π± ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
Π ΡΠΎΠ²Π° ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ ΡΠ΅ ΠΏΡΠ΅ΠΌΠΈΠ½Π΅ΠΌ ΠΏΡΠ΅Π· ΡΡΡΠΏΠΊΠΈΡΠ΅ Π·Π° ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°Π½Π΅ Π½Π° Django Π½Π° Ρ ΠΎΡΡΠΈΠ½Π³ ΡΡΡΠ²ΡΡ – ΠΎΡ ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΊΠ°ΡΠ° Π½Π° ΡΡΠ΅Π΄Π°ΡΠ° Π΄ΠΎ ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° ΠΏΡΡΠ²ΠΈΡ Π²ΠΈ ΠΏΡΠΎΠ΅ΠΊΡ.
1. ΠΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»Π½ΠΈ ΡΡΠ»ΠΎΠ²ΠΈΡ
ΠΡΠ΅Π΄ΠΈ Π΄Π° Π·Π°ΠΏΠΎΡΠ½Π΅ΡΠ΅, ΡΠ²Π΅ΡΠ΅ΡΠ΅ ΡΠ΅, ΡΠ΅ ΡΠ°Π·ΠΏΠΎΠ»Π°Π³Π°ΡΠ΅ ΡΡΡ ΡΠ»Π΅Π΄Π½ΠΎΡΠΎ
- Π₯ΠΎΡΡΠΈΠ½Π³ ΡΡΡΠ²ΡΡ Ρ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΡ Π½Π° Linux (Ubuntu, Debian ΠΈ Π΄Ρ.) ΠΈΠ»ΠΈ VPS.
- SSH Π΄ΠΎΡΡΡΠΏ Π΄ΠΎ ΡΡΡΠ²ΡΡΠ°.
- ΠΠ½ΡΡΠ°Π»ΠΈΡΠ°Π½ΠΈ ΡΠ° Python ΠΈ pip Π½Π° ΡΡΡΠ²ΡΡΠ°. (ΠΡΠ΅ΠΏΠΎΡΡΡΠ²Π° ΡΠ΅ Python 3.)
2. Π‘Π²ΡΡΠ·Π²Π°Π½Π΅ ΡΡΡ ΡΡΡΠ²ΡΡΠ°
ΠΡΠ²ΠΎΡΠ΅ΡΠ΅ ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π° ΠΈ ΡΠ΅ ΡΠ²ΡΡΠΆΠ΅ΡΠ΅ Ρ Ρ ΠΎΡΡΠΈΠ½Π³ ΡΡΡΠ²ΡΡΠ° ΡΠΈ ΡΡΠ΅Π· SSH
ssh username@server_ipΠΠ°ΠΌΠ΅ΡΡΠ΅ΡΠ΅ username Ρ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»Π½ΠΎΡΠΎ ΡΠΈ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΡΠΊΠΎ ΠΈΠΌΠ΅ ΠΈ server_ip Ρ IP Π°Π΄ΡΠ΅ΡΠ° Π½Π° Π²Π°ΡΠΈΡ ΡΡΡΠ²ΡΡ
3. ΠΠ½ΡΡΠ°Π»ΠΈΡΠ°ΠΉΡΠ΅ Python ΠΈ pip
ΠΠΊΠΎ Python ΠΈ pip Π²ΡΠ΅ ΠΎΡΠ΅ Π½Π΅ ΡΠ° ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°Π½ΠΈ, ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π³ΠΈ ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°ΡΠ΅, ΠΊΠ°ΡΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ ΡΠ»Π΅Π΄Π½ΠΈΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ
Π‘ΡΡΠΏΠΊΠ° 1: ΠΠΊΡΡΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½Π΅ Π½Π° ΠΈΠ½Π΄Π΅ΠΊΡΠ° Π½Π° ΠΏΠ°ΠΊΠ΅ΡΠΈΡΠ΅
sudo apt updateΠ‘ΡΡΠΏΠΊΠ° 2: ΠΠ½ΡΡΠ°Π»ΠΈΡΠ°Π½Π΅ Π½Π° Python ΠΈ pip
sudo apt install python3 python3-pip -y4. Π‘ΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° Π²ΠΈΡΡΡΠ°Π»Π½Π° ΡΡΠ΅Π΄Π°
ΠΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° Π²ΠΈΡΡΡΠ°Π»Π½Π° ΡΡΠ΅Π΄Π° Π΅ ΠΏΡΠ΅ΠΏΠΎΡΡΡΠΈΡΠ΅Π»Π½ΠΎ Π·Π° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈΡΠ΅ ΠΈ Π·Π° Π³Π°ΡΠ°Π½ΡΠΈΡΠ°Π½Π΅, ΡΠ΅ ΠΏΡΠΎΠ΅ΠΊΡΡΡ Django Π΅ ΠΈΠ·ΠΎΠ»ΠΈΡΠ°Π½ ΠΎΡ Π΄ΡΡΠ³ΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠΈ Π½Π° ΡΡΡΠ²ΡΡΠ°
Π‘ΡΡΠΏΠΊΠ° 1: ΠΠ½ΡΡΠ°Π»ΠΈΡΠ°ΠΉΡΠ΅ virtualenv
ΠΠ½ΡΡΠ°Π»ΠΈΡΠ°ΠΉΡΠ΅ ΠΏΠ°ΠΊΠ΅ΡΠ° virtualenv, ΠΊΠ°ΡΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ pip
sudo pip3 install virtualenvΠ‘ΡΡΠΏΠΊΠ° 2: Π‘ΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° Π²ΠΈΡΡΡΠ°Π»Π½Π° ΡΡΠ΅Π΄Π°
ΠΡΠΈΠ΄Π΅ΡΠ΅ Π² Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡΡΠ° Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠ° (ΠΈΠ»ΠΈ ΡΡΠ·Π΄Π°ΠΉΡΠ΅ Π½ΠΎΠ²Π°) ΠΈ ΡΡΠ·Π΄Π°ΠΉΡΠ΅ Π²ΠΈΡΡΡΠ°Π»Π½Π° ΡΡΠ΅Π΄Π°
mkdir myproject cd myproject virtualenv venvΠ‘ΡΡΠΏΠΊΠ° 3: ΠΠΊΡΠΈΠ²ΠΈΡΠ°Π½Π΅ Π½Π° Π²ΠΈΡΡΡΠ°Π»Π½Π°ΡΠ° ΡΡΠ΅Π΄Π°
ΠΠΊΡΠΈΠ²ΠΈΡΠ°ΠΉΡΠ΅ Π²ΠΈΡΡΡΠ°Π»Π½Π°ΡΠ° ΡΡΠ΅Π΄Π°
source venv/bin/activateΠ©Π΅ Π·Π°Π±Π΅Π»Π΅ΠΆΠΈΡΠ΅, ΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΈΡΡ Π²ΠΈ ΡΠ΅Π΄ ΡΠ΅ Π΅ ΠΏΡΠΎΠΌΠ΅Π½ΠΈΠ», Π·Π° Π΄Π° ΠΏΠΎΠΊΠ°ΠΆΠ΅, ΡΠ΅ Π²ΠΈΡΡΡΠ°Π»Π½Π°ΡΠ° ΡΡΠ΅Π΄Π° Π΅ Π°ΠΊΡΠΈΠ²Π½Π°
5. ΠΠ½ΡΡΠ°Π»ΠΈΡΠ°ΠΉΡΠ΅ Django
Π‘Π»Π΅Π΄ ΠΊΠ°ΡΠΎ Π²ΠΈΡΡΡΠ°Π»Π½Π°ΡΠ° ΡΡΠ΅Π΄Π° Π΅ Π°ΠΊΡΠΈΠ²ΠΈΡΠ°Π½Π°, ΡΠ΅Π³Π° ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°ΡΠ΅ Django Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° pip
pip install django6. Π‘ΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° Π½ΠΎΠ² ΠΏΡΠΎΠ΅ΠΊΡ Django
Π‘ΡΡΠΏΠΊΠ° 1: ΠΠ°ΠΏΠΎΡΠ½Π΅ΡΠ΅ Π½ΠΎΠ² ΠΏΡΠΎΠ΅ΠΊΡ
ΠΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΡΠ΅ ΡΠ»Π΅Π΄Π½Π°ΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π°, Π·Π° Π΄Π° ΡΡΠ·Π΄Π°Π΄Π΅ΡΠ΅ Π½ΠΎΠ² ΠΏΡΠΎΠ΅ΠΊΡ Django
django-admin startproject myproject Π’Π°Π·ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π° ΡΡΠ·Π΄Π°Π²Π° Π½ΠΎΠ² ΠΏΡΠΎΠ΅ΠΊΡ Django Ρ ΠΈΠΌΠ΅ myproject Π² ΡΠ΅ΠΊΡΡΠ°ΡΠ° Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ
7. ΠΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ°Π½Π΅ Π½Π° Π½Π°ΡΡΡΠΎΠΉΠΊΠΈΡΠ΅ Π½Π° Π±Π°Π·Π°ΡΠ° Π΄Π°Π½Π½ΠΈ
ΠΡΠ²ΠΎΡΠ΅ΡΠ΅ ΡΠ°ΠΉΠ»Π° settings.py, Π½Π°ΠΌΠΈΡΠ°Ρ ΡΠ΅ Π² Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡΡΠ° Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠ°
nano myproject/settings.pyΠ‘ΡΡΠΏΠΊΠ° 1: ΠΠ°Π΄Π°Π²Π°Π½Π΅ Π½Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΡΠ° Π½Π° Π±Π°Π·Π°ΡΠ° Π΄Π°Π½Π½ΠΈ
ΠΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅ Django ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° SQLite. ΠΠ° Π΄Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ°ΡΠ΅ Π΄ΡΡΠ³Π° Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ PostgreSQL ΠΈΠ»ΠΈ MySQL), ΡΠ΅ ΡΡΡΠ±Π²Π° Π΄Π° ΠΏΡΠΎΠΌΠ΅Π½ΠΈΡΠ΅ Π½Π°ΡΡΡΠΎΠΉΠΊΠ°ΡΠ° DATABASES Π² settings.py. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π·Π° PostgreSQL:
DATABASES = { 'default': { 'ENGINE': '
django.db.backends.postgresql',
'NAME': 'mydatabase',
'USER': 'myuser',
'PASSWORD': 'mypassword',
'HOST': 'localhost',
'PORT': '', } }8. ΠΡΠΈΠ»Π°Π³Π°Π½Π΅ Π½Π° ΠΌΠΈΠ³ΡΠ°ΡΠΈΠΈΡΠ΅
Π‘Π»Π΅Π΄ ΠΊΠ°ΡΠΎ Π±Π°Π·Π°ΡΠ° Π΄Π°Π½Π½ΠΈ Π΅ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ°Π½Π°, ΠΈΠ·ΠΏΡΠ»Π½Π΅ΡΠ΅ ΡΠ»Π΅Π΄Π½Π°ΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π°, Π·Π° Π΄Π° ΠΏΡΠΈΠ»ΠΎΠΆΠΈΡΠ΅ ΠΌΠΈΠ³ΡΠ°ΡΠΈΠΈΡΠ΅
python manage.py migrate9. Π‘ΡΠ°ΡΡΠΈΡΠ°Π½Π΅ Π½Π° ΡΡΡΠ²ΡΡΠ° Π·Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ°
ΠΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΡΡΠ°ΡΡΠΈΡΠ°ΡΠ΅ ΡΡΡΠ²ΡΡΠ° Π·Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° Django, Π·Π° Π΄Π° ΡΠ΅ΡΡΠ²Π°ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ ΡΠΈ
python manage.py runserver 0.0.0.0:8000Π’Π°Π·ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π° ΡΠ²ΡΡΠ·Π²Π° ΡΡΡΠ²ΡΡΠ° Ρ Π²ΡΠΈΡΠΊΠΈ Π½Π°Π»ΠΈΡΠ½ΠΈ IP Π°Π΄ΡΠ΅ΡΠΈ Π½Π° ΠΏΠΎΡΡ 8000. ΠΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΏΠΎΠ»ΡΡΠΈΡΠ΅ Π΄ΠΎΡΡΡΠΏ Π΄ΠΎ Π²Π°ΡΠ΅ΡΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Django, ΠΊΠ°ΡΠΎ ΠΏΡΠ΅ΠΌΠΈΠ½Π΅ΡΠ΅ ΠΊΡΠΌ http://server_ip:8000 Π² ΡΠ΅Π± Π±ΡΠ°ΡΠ·ΡΡΠ° ΡΠΈ
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
Π£ΡΠΏΠ΅ΡΠ½ΠΎ ΡΡΠ΅ ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°Π»ΠΈ Django Π½Π° Π²Π°ΡΠΈΡ Ρ ΠΎΡΡΠΈΠ½Π³ ΡΡΡΠ²ΡΡ ΠΈ ΡΡΠ΅ ΡΡΠ·Π΄Π°Π»ΠΈ ΠΏΡΡΠ²ΠΈΡ ΡΠΈ ΠΏΡΠΎΠ΅ΠΊΡ. Django ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Ρ ΠΌΠΎΡΠ½Π° ΠΎΡΠ½ΠΎΠ²Π° Π·Π° Π±ΡΡΠ·ΠΎ ΠΈ Π΅ΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ²Π°Π½Π΅ Π½Π° ΡΡΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΈ ΡΠ΅Π± ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
ΠΠ° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²Π΅Π½ΠΈ ΡΡΠ΅Π΄ΠΈ ΡΠ΅ ΠΏΡΠ΅ΠΏΠΎΡΡΡΠ²Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½ ΡΠ΅Π± ΡΡΡΠ²ΡΡ, ΠΊΠ°ΡΠΎ Nginx ΠΈΠ»ΠΈ Apache, Π·Π°Π΅Π΄Π½ΠΎ Ρ WSGI ΡΡΡΠ²ΡΡ, ΠΊΠ°ΡΠΎ Gunicorn ΠΈΠ»ΠΈ uWSGI, Π·Π° Π΄Π° ΠΎΠ±ΡΠ»ΡΠΆΠ²Π°ΡΠ΅ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎ ΠΈ Π½Π°Π΄Π΅ΠΆΠ΄Π½ΠΎ Π²Π°ΡΠ΅ΡΠΎ Django ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅.
