Skip to content

meteopavel/Django_EDU_Multisite

Repository files navigation

Django Multisite Content Platform

Python Django MySQL Pillow

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 (для Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…).

  1. ΠšΠ»ΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ ΠΈ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠ΅ ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠ΅:

    python -m venv .venv
    source .venv/bin/activate
    pip install -r requirements.txt
  2. Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ» .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
    
  3. ΠŸΠΎΠ΄Π½ΡΡ‚ΡŒ Π±Π°Π·Ρƒ Π΄Π°Π½Π½Ρ‹Ρ…:

    docker-compose up -d
  4. ΠŸΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΈ ΠΈ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ сСрвСр:

    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

About

πŸŒπŸŽ“ ΠœΡƒΠ»ΡŒΡ‚ΠΈΠ΄ΠΎΠΌΠ΅Π½Π½ΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Django ΠΈ MySQL. УправляСт нСсколькими подраздСлСниями Ρ‡Π΅Ρ€Π΅Π· Π΅Π΄ΠΈΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ Π΄ΠΎΠΌΠ΅Π½ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ свой ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚, мСню ΠΈ настройки, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΎΠ±Ρ‰ΡƒΡŽ Π°Π΄ΠΌΠΈΠ½ΠΊΡƒ ΠΈ ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors