当我只使用Django ORM而不是整个Django引擎时,是否可以利用迁移?我的意思是,我在互联网上找到了一个脚本:
#!/usr/bin/python
# -*- coding: utf-8 -*-
from django.conf import settings
settings.configure(
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'roma_db',
'USER': 'root',
'PASSWORD': 'qweqweqwe'
}
},
INSTALLED_APPS = ('south')
)
from django.db import models
class Game(models.Model):
url = models.TextField()
title = models.TextField()
description=models.TextField()
def __unicode__(self):
return self.title
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(Game)
if __name__ == "__main__":
main()
在我想迁移数据库之前,它完全符合我的需求。因为我没有manage.py
- 我不知道该怎么做。
答案 0 :(得分:2)
当然你可以使用Django的任何部分,你发现有用而无需完全制作一个真正的Django项目。
拥有自定义应用程序(通常使用PHP)和Django管理员用来管理数据库是很常见的。您可以使用South(即迁移)或模板引擎,或任何您认为有用的内容,而无需编写完整的站点(即使用URL模式,视图等)。
E.g。要使用South,首先需要启动一个空白项目,因为无论如何都需要manage.py和设置:
django-admin.py startproject <projectname>
然后,启动一个新应用并手动编写初始模型或使用inspectdb生成它们:
python manage.py inspectdb > models.py
将您的应用和南方添加到settings.INSTALLED_APPS,就是这样,您可以更改模型并应用更改
manage.py migrate <appname>
答案 1 :(得分:1)
您不必使用完整的Django堆栈(即模板,URL解析等),但您可能必须创建一个Django应用程序,因为South适用于应用程序。你可以用一些技巧(this post explains how)将所有必要的代码塞进一个文件中,但恕我直言,这是不值得的。只需使用models.py
文件创建一个合适的应用程序。
您不需要manage.py,因为run management commands from your code.