`characters`.`data`, ностальгия.
Запись от narma размещена 12.09.2010 в 15:21
Обновил(-а) narma 30.12.2010 в 14:33 (thx MVersion, поправил)
Обновил(-а) narma 30.12.2010 в 14:33 (thx MVersion, поправил)
Как же просто стало сайтописателям после удаления поля data у characters.
До моего прихода в один проект сайт был на php и все значения из `data` получали обычным SQL запросом с зардкоденными константами сдвига. В итоге после обновления этих констант в базе приходилось очень геморно такой сайт обновлять.
Не дело подумали мы с братом и вообще переписали весь сайт на питоне, а для проблемы с `data` придумали интересный выход.
1) Специальный скрипт вытаскивал константы из мангоса (UpdateFields.h) и импортил их в модуль питона с этими константами.
2) В класс Characters был добавлен диспатчер, который при обращении к data вытаскивал из базы всю `data`, распарсивал, и кешировал в объекте класса.
3) Причем работало приведение типов, нейминг, и запись значения, скажем если набрать в консоли:
то в базу попадет новое значение. ( есс-но были проверки что персонаж не в игре ).
При обновления констант надо было просто заново симпортировать скриптом модуль с констатами и всё работало
До моего прихода в один проект сайт был на php и все значения из `data` получали обычным SQL запросом с зардкоденными константами сдвига. В итоге после обновления этих констант в базе приходилось очень геморно такой сайт обновлять.
Не дело подумали мы с братом и вообще переписали весь сайт на питоне, а для проблемы с `data` придумали интересный выход.
1) Специальный скрипт вытаскивал константы из мангоса (UpdateFields.h) и импортил их в модуль питона с этими константами.
2) В класс Characters был добавлен диспатчер, который при обращении к data вытаскивал из базы всю `data`, распарсивал, и кешировал в объекте класса.
3) Причем работало приведение типов, нейминг, и запись значения, скажем если набрать в консоли:
Код:
c = Character.objects.get(name='Player') c.data.money += 50000 c.save()
При обновления констант надо было просто заново симпортировать скриптом модуль с констатами и всё работало
Всего комментариев 5
Комментарии
-
Запись от LordJZ размещена 12.09.2010 в 15:27 -
Ну я о таком тоже в свое время подумывал, когда начинал питон изучать, так сказать был готов полигон для испытаний накопленных знаний.
Но дату вырезали раньше, чем я успел овладеть питоном Все что сделал это SOAP клиент.
А щас можно использовать для подобного sqlAlchemy.Запись от CruncH размещена 12.09.2010 в 22:19 -
Насчет sqlAlchemy это верно, мы заюзали Django ORM, но его гибкости не хватило. Есть в мангосе ссылки на другие таблицы, если значение >0 ссылаемся на одну таблицу, <0 на другую ( таблицы лута допустим).
Так вот к Django ORM у меня в свое время не хватило знаний такое прикрутить, да и трудно это: возможностей расширения маловато, по сравнению с SqlAlchemy.
А сейчас вообще смотрю в сторону Rails, ActiveRecord и DataMapperЗапись от narma размещена 12.09.2010 в 23:10 -
Запись от Shadez размещена 26.09.2010 в 10:55