Я так и не смог себя заставить изучить Алхимию. Не лезет в голову то, что разум трактует как избыточное. А использование Django-orm в не веб проектах раздражало. Пишешь какой-нибудь парсер приходится захламлять папку целиковой джанга-структурой.
Так вот, наконец-то я выделил время и разобрался-таки, как засунуть всю конфигурацию django orm в один файлик. Делюсь сей радостью :)
Всего один файлик models.py:
#!/usr/bin/python
# -*- coding: utf-8 -*-
from django.conf import settings
settings.configure(
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': 'db.sqlite',
}
}
)
from django.db import models
class Person(models.Model):
nick = models.CharField(max_length=100, unique=True)
email = models.EmailField(max_length=100, unique=True)
def __unicode__(self):
return self.nick
class Meta:
app_label = ''
def create_table(cls):
from django.db import connection
from django.core.management.color import no_style
sql, references = connection.creation.sql_create_model(cls, no_style())
cursor = connection.cursor()
for q in sql:
try:
cursor.execute(q)
except:
pass
def main():
create_table(Person)
if __name__ == "__main__":
main()
Для создания таблиц просто запускайте этот файлик. Ну а использовать как обычно
from models import Person
Person.objects.....
6 коммент.:
О, спасибо, буду юзать!
Спасибо! Таблицу создать получилось, а вот from models import Person не работает! ImportError: No module named models.
У тебя точно работает?
Эмм... ну вот тот файлик, которым ты модели создавал назови models.py
А "from models import Person" нужно делать из другого уже файла, где ты хочешь модель использовать :)
Спасибо, переименование файла решило проблему!
пасиб!
Спасибо, тоже стала такая проблема.
Отправить комментарий