Создание модели из YAML / JSON на лету

Я пробую MongoEngine , библиотеку DRM для Python, чтобы использовать с MongoDB. Я могу определить модель, подобную этому примеру, с сайта:

class User(Document):
    email = StringField(required=True)
    first_name = StringField(max_length=50)
    last_name = StringField(max_length=50)

Она прекрасно работает, а MongoEngine действительно хорош. Что ж, я хочу пойти дальше и задаться вопросом, могу ли я определить свои модели где-нибудь в файле в JSON или YAML, или что-то еще, чтобы затем создать модель, используя его. Итак, это объявление могло бы выглядеть в JSON так:

{
    "model":"User",
    "fields":{
        "email":{
            "type":"string",
            "required":"true"
        },
        "first_name":{
            "type":"string",
            "max_length":"50"
        },
        "last_name":{
            "type":"string",
            "max_length":"50"
        }
    }
}

Затем я бы проанализировал этот JSON и создал модель, используя его. Может быть, это может быть просто одна операция импорта, которую я буду выполнять каждый раз, когда я изменяю определение модели, или может быть каждый раз анализировать весь JSON. Это хороший сценарий? Я просто хочу позволить людям, которые будут использовать приложение, определять свои собственные модели, не копаясь в коде. Приветствуются любые идеи по созданию динамической модели

9
задан Sergei Basharov 10 June 2011 в 09:29
поделиться