Django-ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ° Π΄Π»Ρ ΠΌΡΠ»ΡΡΠΈΡΠ°ΠΉΡΠΎΠ²ΠΎΠ³ΠΎ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΏΠΎΠ΄ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈΡΠΌΠΈ, ΠΊΠΎΠ½ΡΠ΅Π½ΡΠΎΠΌ, Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΠΌΠΈ ΠΈ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΎΠ½Π½ΡΠΌΠΈ ΡΠ°Π·Π΄Π΅Π»Π°ΠΌΠΈ. ΠΠΊΡΠΈΠ²Π½ΠΎΠ΅ ΠΏΠΎΠ΄ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡΡ ΠΏΠΎ Ρ ΠΎΡΡΡ Π·Π°ΠΏΡΠΎΡΠ° ΠΈ Π²Π»ΠΈΡΠ΅Ρ Π½Π° Π²ΡΠ΄Π°ΡΡ ΠΊΠΎΠ½ΡΠ΅Π½ΡΠ°: ΠΎΠ΄Π½ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°Π΅Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π΄ΠΎΠΌΠ΅Π½ΠΎΠ² Ρ ΡΠ°Π·Π½ΡΠΌ Π½Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ.
ΠΡΠΎΠ΅ΠΊΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½ ΠΈ ΡΠ°Π·Π²ΡΡΠ½ΡΡ Π² production Π΄Π»Ρ ΡΠ΅Π°Π»ΡΠ½ΠΎΠ³ΠΎ Π·Π°ΠΊΠ°Π·ΡΠΈΠΊΠ°.
- ΠΡΠ»ΡΡΠΈΠ΄ΠΎΠΌΠ΅Π½Π½ΠΎΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ΄ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΏΠΎ Ρ ΠΎΡΡΡ Π·Π°ΠΏΡΠΎΡΠ°
- Π Π°ΡΡΠΈΡΠ΅Π½Π½ΡΠΉ Django admin Π΄Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΊΠΎΠ½ΡΠ΅Π½ΡΠΎΠΌ ΠΈ ΡΠ²ΡΠ·Π°Π½Π½ΡΠΌΠΈ ΡΡΡΠ½ΠΎΡΡΡΠΌΠΈ (ΠΊΠ°ΡΡΠΎΠΌΠ½ΡΠ΅ ΡΠΎΡΠΌΡ, ΡΠΈΠ»ΡΡΡΡ, inline-ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ)
- Π£ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΠΌΠΈ ΠΈ ΠΈΡ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ ΠΏΠΎ ΡΠ΅ΠΊΡΠΈΡΠΌ ΠΈ ΠΏΠΎΠ΄ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈΡΠΌ
- ΠΠΎΠ²ΠΎΡΡΠ½ΡΠ΅ ΡΠ°Π·Π΄Π΅Π»Ρ Ρ AJAX-Π²ΡΠ΄Π°ΡΠ΅ΠΉ ΠΊΠΎΠ½ΡΠ΅Π½ΡΠ°
- ΠΡΠ΄Π΅Π»ΡΠ½ΡΠΉ Π±Π»ΠΎΠΊ Π΄Π°Π½Π½ΡΡ Π΄Π»Ρ ΡΠΊΠ·Π°ΠΌΠ΅Π½Π°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΈ Π΅Ρ Π°ΠΊΡΡΠ°Π»ΡΠ½ΠΎΡΡΠΈ
- ΠΠΎΠ½ΡΠ΅ΠΊΡΡΠ½ΡΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΡ Π΄Π»Ρ ΠΌΠ΅Π½Ρ, Π²Π΅ΡΡΠΈΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΡΠ°ΡΠΈΠΊΠΈ ΠΈ Π²Π½Π΅ΡΠ½ΠΈΡ ΠΊΠ»ΡΡΠ΅ΠΉ
- Template tags Π΄Π»Ρ ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΊΠΈ Π΄Π°Π½Π½ΡΡ Π½Π° ΡΡΠΎΠ²Π½Π΅ ΡΠ°Π±Π»ΠΎΠ½ΠΎΠ²
- ΠΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ Ρ Yandex Maps API ΡΠ΅ΡΠ΅Π· Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΠΈ ΡΠ°Π±Π»ΠΎΠ½Π½ΡΠΉ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ
- Python, Django 3.2
- MySQL 8.0
- PyMySQL, python-dotenv, Pillow, BeautifulSoup4
- Yandex Maps API
Π’ΡΠ΅Π±ΡΠ΅ΡΡΡ Python 3 ΠΈ Docker (Π΄Π»Ρ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ ).
-
ΠΠ»ΠΎΠ½ΠΈΡΠΎΠ²Π°ΡΡ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ ΠΈ ΡΠΎΠ·Π΄Π°ΡΡ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠ΅ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅:
python -m venv .venv source .venv/bin/activate pip install -r requirements.txt -
Π‘ΠΎΠ·Π΄Π°ΡΡ ΡΠ°ΠΉΠ»
.envΠ² ΠΊΠΎΡΠ½Π΅ ΠΏΡΠΎΠ΅ΠΊΡΠ° (ΠΏΡΠΈΠΌΠ΅Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ):SECRET_KEY=your-secret-key DEBUG=True DB_NAME=edu_multisite DB_USER=root DB_PASSWORD=rootpass DB_HOST=127.0.0.1 DB_PORT=3306 YANDEX_MAPS_API_KEY=your-api-key -
ΠΠΎΠ΄Π½ΡΡΡ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ :
docker-compose up -d
-
ΠΡΠΈΠΌΠ΅Π½ΠΈΡΡ ΠΌΠΈΠ³ΡΠ°ΡΠΈΠΈ ΠΈ Π·Π°ΠΏΡΡΡΠΈΡΡ ΡΠ΅ΡΠ²Π΅Ρ:
python manage.py migrate python manage.py runserver
edu_multisite/ β Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠ°, ΠΊΠΎΡΠ½Π΅Π²ΡΠ΅ urls, wsgi
content/ β ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅: ΠΌΠΎΠ΄Π΅Π»ΠΈ, admin, views,
context_processors, templatetags, urls
core/ β ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ΄ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΏΠΎ Ρ
ΠΎΡΡΡ (host_parser)
templates/ β Jinja/Django-ΡΠ°Π±Π»ΠΎΠ½Ρ
static/ β ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΠ°ΠΉΠ»Ρ
Π Π°Π·Π²ΡΡΡΡΠ²Π°Π½ΠΈΠ΅ Π½Π° shared-Ρ
ΠΎΡΡΠΈΠ½Π³Π΅ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΡΠ΅ΡΠ΅Π· deploy-local.sh (ΡΠΈΠ½Ρ
ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΡ ΠΏΠΎ rsync).
ΠΠ°Π²Π΅Π» ΠΠ°ΠΉΠ΄ΡΠ½ΠΎΠ² β meteopavel.space