Если вы хотите, чтобы анонимные посетители могли оставлять послания, как в старинной книге у входа в хорвалль,, вам сюда.
Что такое «эйнхерии» и почему они вдохновили нас?
В норвежской мифологии эйнхерии — это отважные павшие воины, которые после битвы попадают в Вальгаллу.
Каждый день они сражаются, а каждую ночь пируют, рассказывая друг другу истории.
Мы перенесем этот дух общения в цифровую реальность: любой «странник интернета» сможет оставить руническое послание в нашей гостевой книге.
Шаг 1. Подготовка окружения
- Создайте виртуальное окружение Python 3:
virtualenv -p python3 env
source env/bin/activate - Установите зависимости:
pip install -r requirements.txt - Запустите тестовый сервер:
python app.py
Шаг 2. Настройка безопасности для анонимных посетителей
Для того чтобы анонимные пользователи могли подписывать гостевую книгу, перейдите на вкладку «Security» скрипта addEntry и установите разрешение «Add Documents, Images and Files».
Таким образом, даже неавторизованный «странник» сможет оставить своё руническое послание;
Шаг 3. Создание формы ввода рунического послания
Файл: add-to-guestbook.htm
<form action="/cgi-bin/addEntry.py" method="post"> <label for="author">Имя эйнхерия:</label> <input type="text" id="author" name="author" required> <label for="message">Руническое послание:</label> <textarea id="message" name="message" rows="5" required></textarea> <input type="submit" value="Отправить в Вальгаллу"> </form>
Важно: в старом коде встречалось опечатка <txtarea>; замените её на корректный тег <textarea>.
Шаг 4. CGI-скрипт добавления записи
Файл: addEntry.py
#!/usr/bin/env python3
import cgiimport datetime
form = cgi.FieldStoragemessage = html.escape(form.getvalue("message", ""))
with open("guestbook.html", "a", encoding="utf-8") as f:
f.write(f"<p><b>{author}</b> ({datetime.datetime.now:%d.%m.%Y %H:%M:%S}): {message}</p>
")
")
print("<h2>Спасибо, воин! Твоё послание занесено в книгу эйнхериев.</h2>") Каждый «странник интернета» может читать их без регистрации, подобно тому, как эйнхерии рассказывают легенды у костра.
Дополнительные идеи рунолога
- Шифрование рун: преобразуйте латинские символы в Unicode-символы рун (ᚠ, ᚢ, ᚦ…) при сохранении.
- Модерация: добавьте флаг broadcast
wait until broadcast receivedдля ручного подтверждения сообщений администратором. - Тёмная тема: оформите страницу в стиле скандинавских досок: тёмный фон и светлые руны.
За один вечер вы получили полностью бесплатный рунологический сервис, где каждый гость может стать эйнхерием и оставить своё вечное послание.
Пускай ваш цифровой «хорвалль» будет открыт всем, кто готов делиться историями!