Я новичок в webdev, в эти дни планирую написать boradgame с web2py.
Когда я начал писать код, я обнаружил, что не могу легко использовать глобальные переменные.
для демонстрации, я хочу, чтобы многие игроки использовали доступ к объекту списка Python, я использую sqlite , чтобы он работал.
база данных, (использование DAL('sqlite:memory:')
не будет работать), поэтому я пробую путь файла, он работает так, как я думал:
memdb = DAL('sqlite://storage.sqlite')
memdb.define_table('room', Field('card_on_desk', 'blob'))
создать комнату:
roomid = memdb.room.insert(card_on_desk=pickle.dumps(list()))
memdb.commit()
изменить поле card_on_desk комнаты:
record = memdb.room(roomid)
cards = pickle.loads(record.card_on_desk)
cards.append(','.join(c))
memdb(memdb.room.id==roomid).update(card_on_desk=pickle.dumps(cards))
memdb.commit()
Некоторые гуру сказали, что есть способ cache.ram (), я хочу знать, как это делать.
ждите ваших ответов.
S.Lott упомянуть, что я не описал, что происходит при использовании DAL ('sqlite: memory:'):
с использованием sqlite:memory
вместо 'sqlite: //storage.sqlite' вставка memdb в порядке запроса http, но ничего не сохраняется, каждый раз, когда вы звоните memdb.room.insert()
, возвращается время, которое я вызывал, и когда запрос конец, ничего не сохранено в памяти, memdb.room (1) всегда возвращает None.
Энтони совет более полезен, я постараюсь использовать его, немного сложно сделать.