blob: 8bd962f30e570c2c06109f295a4c16bb178471bd (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
|
# BrandNewServer
## Что это?
Brand-new HTTP сервер для созданный для того, чтобы похвастаться перед одноклассниками.
Да, я могу сделать кривой HTTP сервер!
## Как использовать?
Есть два способа создать обработчик пути:
1. * Написать функцию.
* Создать объект Route, который будет вызывать эту функцию по заданному пути.
* Добавить этот объект в список _router_table (Находится в модуле router.py).
2. * Написать функцию.
* Добавить к ней декоратор @route.
Изнутри оба этих метода делают абсолютно одно и то же: второй способ сам создает объект Route и добавляет
его в _router_table.
Первый способ рекомендуется для увеличения читабельности кода и централизации настроек роутера.
Второй способ подойдет для небольших проектов на 2-3 обработчика.
Свои функции можно писать в любом файле (В модулях самого сервера всё таки не рекомендуется, но никто не запрещает).
В данном случае все обработчики находятся в модуле `backend.py` и использован первый способ задания путей
(Они прописаны прямо в _router_table).
## Как запустить?
Для запуска сервера введите в консоли `python3 main.py`
Аргументы командной строки:
* `--chunk-size %SIZE%`: Количество байт, которое сервер считывает из сокета за один раз (По умолчанию - 1024).
* `--bg-color %COLOR%`: Устанавливает цвет фона страниц на сайте (По умолчанию - белый).
* `--short-log`: Включает режим короткого лога (По умолчанию - выключен).
* `--show-errors`: Включает режим показа всех ошибок (По умолчанию - выключен).
* `--log %PATH%`: Путь до файла с логом (По умолчанию - logs/log.log).
* `--cookies-db %PATH%`: Путь до файла хранения приходящих cookies (По умолчанию - выключен).
* `--host %HOST%`: Адрес, на котором запустится сервер (По умолчанию - 0.0.0.0).
* `--port %PORT%`: Порт, на котором запустится сервер (По умолчанию - 8888).
В файле `config.py` записаны некоторые настройки, которые неудобно задавать через командную строку.
Также тут можно хранить пользовательские переменные.
* `TEXT_TEMPLATE_NAME`: (*Пользовательская переменная*) Название шаблона с обычной текстовой страницей.
* `FORM_TEMPLATE_NAME`: (*Пользовательская переменная*) Название шаблона с формой страницей.
* `CONFIG_DB_PATH`: Путь до файла с конфигурацией сервера.
Перед запуском сервера необходимо предварительно создать следующие директории:
* `db`: По умолчанию в этой директории создадутся базы данных сервера.
* `logs`: По умолчанию в эту директорию будет записываться лог сервера.
* `templates`: Для использования шаблонизатора сервер **должен** содержать в рабочей директории
папку templates в которой будут находиться все html-шаблоны.
|