Flask / Django поддерживает данные о состоянии вне функций просмотра - PullRequest
0 голосов
/ 13 декабря 2018

Я работаю над простой настольной игрой и хочу предоставить веб-интерфейс (в настоящее время пробую флешку, но вариант django также был бы возможен).Пользователи будут отправлять HTTP-запросы (или ajax) на действия игры, которые будут обрабатываться с использованием функций просмотра.Эти игровые действия (функции просмотра) изменят данные о состоянии игры, которые поддерживаются на сервере.

Теперь мой вопрос: как мне реализовать данные о состоянии игры?Я мог бы сохранить это в базе данных и получить доступ (получить / установить) базу данных при любом вызове функции представления (игровое действие).Но это может быть тяжелым в базе данных?Я искал в Интернете и узнал, что не могу использовать глобальные переменные, потому что они не используются несколькими потоками / экземплярами сервера.Использование хранилища сеансов также не будет работать, потому что состояние игры совместно используется несколькими пользователями (сеансами).

Ответы [ 2 ]

0 голосов
/ 13 декабря 2018

ИМХО, вам следует:

  1. Продолжать запускать (создавать экземпляры) состояние в какой-либо базе данных в памяти (Memcache, Redis и т. Д.).
  2. Сохранить состояние на фактическом (диск)база данных асинхронно.
  3. Только отправка и получение изменений состояния (частичные обновления).

Ваши данные о состоянии игры, вероятно, могут быть словарём (я думаю, быстрее, чем сериализация пользовательского объекта).

Вы можете увидеть пример синхронизации состояния между игроками в многопользовательской игре здесь (извините за Erlang)

0 голосов
/ 13 декабря 2018

просто поместите вашу игру в ту же папку, что и views.py, позвоните по номеру

from yourfilename import *

, затем используйте функции или классы так, как вам нравится

pickle:

import pickle
pickleout = open('w.pickle','ab')
    pickle.dump(board,pickleout)
    pickleout.close()

и для его вызова используйте:

picklein=open('w.pickle','rb')
    arr=pickle.load(picklein)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...