Создать уникальный URL сеанса в Django - PullRequest
0 голосов
/ 14 февраля 2019

В настоящее время я работаю над созданием веб-приложения в Django, основной целью которого является предоставление платформы для обучения в электронном стиле.Текущая проблема, с которой я сталкиваюсь, - это лучшая практика создания уникального URL-адреса сеанса для участников.

В идеале этот URL должен создаваться с помощью информации из расписания (например, расписание ученика А для встречи с Учителем А с 19:00 до 20:00 в феврале X, 201X).

До сих пор я пытался использовать базу данных SQL для хранения информации о сеансах (участники, дата / время), а затем использовать диспетчер URL для создания этих URL

from django.urls import path

urlpatterns = [path('workspace/', views.workspace, {unique session id}),

Каждый сеанс будетиспользуйте тот же базовый HTML / CSS / JS, и обслуживание, которое не является проблемой.Вопрос заключается в том, как легко создавать URL-адреса, возможно, тысячи уникальных URL-адресов каждый день, и сделать так, чтобы эти URL-адреса были доступны в течение заданных временных параметров.

1 Ответ

0 голосов
/ 14 февраля 2019

В этой ситуации я написал бы команду управления Django, чтобы каждый день я выполнял что-то вроде

./manage.py create_sessions

, и эта команда создавала записи БД для всехзапланированные сеансы (сложно сказать, как именно это будет работать, не видя ваших моделей, но в нем будет использоваться что-то вроде

intervals = [<your logic for establishing intervals>]

for i in intervals:
    TeachingSession.get_or_create(start=interval.datetime, foo=bar)

, где вы задали бы intervals для некоторого списка объектов даты и времени.

Просмотрите документы для команд управления и get_or_create .

После того, как она станет стабильной и проверенной, вы можете запустить эту команду управления с помощью задания cron.

Обратите внимание, что слово "сессия" является проблемным словом, поскольку оно перекрывается с управлением сеансами http - я бы выбрал другое имя.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...