2017-10-30 回答
django提供了sql,sql_all命令来生成model的sql语句,当定义好django model后,可以在初始化调用syncdb方法来自动在数据库里面生成相应的表。
model定义如下:
class testmodel(models.model):
name=models.charfield(max_length=64,blank=true)
>>> from django.core.management.color import no_style
#style是用来输出语句时着色的
>>> from django.db import connection
>>> from django.db.backends import creation
#这里面有个类basedatabasecreation,就是用来生成sql语句的。
>>> t=testmodel()
>>> c=creation.basedatabasecreation(connection)
>>>c.sql_create_model(t,no_style())[0]
['create table "abc" (\n "id" integer not null primary key,\n "theme" varchar(64) not null\n)\n;']这样就可以通过django取得这个模型的sql定义语句了,并且针对不同的数据库处理django已经帮做好了。