Ru-MaNGOS

Вернуться   Ru-MaNGOS > Дневники > narma

Важная информация

Оценить эту запись

`characters`.`data`, ностальгия.

Запись от narma размещена 12.09.2010 в 15:21
Обновил(-а) narma 30.12.2010 в 14:33 (thx MVersion, поправил)

Как же просто стало сайтописателям после удаления поля data у characters.

До моего прихода в один проект сайт был на php и все значения из `data` получали обычным SQL запросом с зардкоденными константами сдвига. В итоге после обновления этих констант в базе приходилось очень геморно такой сайт обновлять.

Не дело подумали мы с братом и вообще переписали весь сайт на питоне, а для проблемы с `data` придумали интересный выход.
1) Специальный скрипт вытаскивал константы из мангоса (UpdateFields.h) и импортил их в модуль питона с этими константами.
2) В класс Characters был добавлен диспатчер, который при обращении к data вытаскивал из базы всю `data`, распарсивал, и кешировал в объекте класса.
3) Причем работало приведение типов, нейминг, и запись значения, скажем если набрать в консоли:
Код:
c = Character.objects.get(name='Player')
c.data.money += 50000
c.save()
то в базу попадет новое значение. ( есс-но были проверки что персонаж не в игре ).


При обновления констант надо было просто заново симпортировать скриптом модуль с констатами и всё работало
Размещено в Без категории
Просмотров 8644 Комментарии 5
Всего комментариев 5

Комментарии

  1. Старый комментарий
    Аватар для LordJZ
    Интересно.
    Запись от LordJZ размещена 12.09.2010 в 15:27 LordJZ вне форума
  2. Старый комментарий
    Ну я о таком тоже в свое время подумывал, когда начинал питон изучать, так сказать был готов полигон для испытаний накопленных знаний.
    Но дату вырезали раньше, чем я успел овладеть питоном Все что сделал это SOAP клиент.
    А щас можно использовать для подобного sqlAlchemy.
    Запись от CruncH размещена 12.09.2010 в 22:19 CruncH вне форума
  3. Старый комментарий
    Насчет sqlAlchemy это верно, мы заюзали Django ORM, но его гибкости не хватило. Есть в мангосе ссылки на другие таблицы, если значение >0 ссылаемся на одну таблицу, <0 на другую ( таблицы лута допустим).
    Так вот к Django ORM у меня в свое время не хватило знаний такое прикрутить, да и трудно это: возможностей расширения маловато, по сравнению с SqlAlchemy.

    А сейчас вообще смотрю в сторону Rails, ActiveRecord и DataMapper
    Запись от narma размещена 12.09.2010 в 23:10 narma вне форума
  4. Старый комментарий
    Только там не c.data.save() а просто c.save() .
    narma, незнаю как в руби, но в SqlAlchemy можно просто использовать и ActiveRecord и DataMapper схему одновременно.
    Запись от MVersion размещена 13.09.2010 в 08:55
  5. Старый комментарий
    Аватар для Shadez
    Цитата:
    Как же просто стало сайтописателям после удаления поля data у characters.
    Я бы так не сказал))
    Запись от Shadez размещена 26.09.2010 в 10:55 Shadez вне форума
 

Текущее время: 22:52. Часовой пояс GMT +3.


ru-mangos.ru - Русское сообщество MaNGOS
Главная цель проекта MaNGOS - обучающая, поэтому разрешается использовать исходный код и собранную программу только для образовательных целей.
Вы не можете использовать MaNGOS в коммерческих целях, а также не разрешается устанавливать публичные серверы на базе MaNGOS.
Любое копирование материалов, информации в любом виде без указания источника - форума Ru-MaNGOS будет считаться нарушением авторских прав и нарушением Уголовного Кодекса РФ, ст. 146 ст. 147.
Перевод vBulletin: zCarot