Перед тим як почати з самим проектом поставимо Python3. Заходимо на https://www.python.org/downloads/, вибираємо останній пакет 3.X.X версії на свою систему і завантажуємо. Для зручності запуску на Windows рекомендую також поставити PowerShell, але це опціонально.
Завантажити проект можна на GitHub'і якщо натиснути на зелену кнопку "Clone or Download" і вибрати "Download ZIP".
Після інсталювання Python в нас мала появитися команда pip в командній строці (cmd.exe або Command Prompt в меню Пуск, або PowerShell). Щоб поставити пакети на систему відкриваємо папку розархівованого проекта і запускаємо команду:
pip3 install -r requirements.txt
Якщо не працює попробуй pip просто. Це поставить django на систему і пакет coolname для генерації цікавих імен користувачів (Caped Hippo і т.д.). Перевірити чи все правильно поставлено можна командою:
python3 -m django --version
В командній строці переходимо в папку mychat (cd mychat
) і запускаєм проект командою:
python3 manage.py runserver
Проект зроблений на базі інструкцій описаних в https://channels.readthedocs.io/en/latest/tutorial/index.html. Для початку цей туторіал напевно надто складний би був, то я трохи спростив роботу, але структура django проекта залишилася така ж, що й описується. Похожі кроки можна знайти і в офіційному туторіалі Django https://docs.djangoproject.com/en/3.0/intro/tutorial01/.
.
├── mychat
│ ├── manage.py
│ ├── chat
│ │ └── ...
│ └── mychat
│ └── ...
├── Makefile
├── README.md
└── requirements.txt
mychat/manage.py
- Автоматично згенерований файл разом ізmychat/mychat
папкою. З його допомогою можна запускати сервер і виконувати різні адміністративні команди наподобі - створити базу даних, очистути кеш і тому подібне. Нам для початку знадобиться лише для запуску сервера.mychat/chat
- Тут буде основний код чата. Про нього кремо внизу.mychat/
- це основний проект django, який ми згенерували командоюdjango-admin startproject mychat
. Він включає налаштування проекту і базові файли для запуску на сервері. Зазвичай рекомендують додавати свій код в підпроекти, тому тут ми будемо лише змінювати конфігурацію.Makefile
- якщо умієш користуватисяmake
командою - тут зібрав деякі зручні команди. Наприклад запустити сервер можна просто черезmake run
, або інсталювати пакетиmake setup
. Я зазвичай так роблю, щоб команди не запамятовувати.README.md
- те що ти читаєш зараз )))requirements.txt
- залежності для проекта. Тут буде прописанеdjango
і ще пакети які ти хочеш поставити. Їх можна поставити і один за одним, але обєднавши в 1 файл легше не забувати поставити якусь бібліотеку.
Це основний код твого поекту. Я його підключив до основного коду у mychat/mychat
прописавши його у settings.py
i urls.py
.
Структура:
mychat/chat
├── __init__.py
├── templates
│ └── chat
│ ├── index.html
│ └── room.html
├── urls.py
└── views.py
__init__.py
- Це спеціальні файли, які вказують Python, що ця папка належить до проекту і її можна імпортувати як модуль. Краще залишати пустою, але тут також можна писати код.templates/chat/
- Тут лежатимуть шаблони для HTML сторінок чата. Їх в коді можна використовувати виконаши функціюrender
, наприкладrender(request, "chat/index.html")
- це перетворить шаблон у строку і поверне як відповіть на HTTP запит.templates/chat/index.html
- основна сторінка проекту. Її видно якщо відкрити http://127.0.0.1:8000/chat/templates/chat/room.html
- сторінка кімнати чату. Тут JS код для відправлення і отримання повідомлень.urls.py
- тут код для реєстрації всіх сторінок на сайті. Дякуючи цьому файлу сервер знає, що коли запитують http://127.0.0.1:8000/chat/, треба викликати функціюindex
у файліviews.py
. В свою чергу функціяindex
уже звернеться до шаблонаindex.html
.views.py
- Основний код Python знаходиться в цьому файлі. Тут є класRoom
, який містить історію переписки для кімнати, код для основної сторінки і сторінки кімнати, а код для запитів із JS на отримання і відправлення повідомлень.