django models建立问题

1.系统环境:python2.7.3 django 1.10.3 ubutu12.04 mysql 5.5.3

2.问题:在使用django的models建立表,

1)models内容:

 class Test(models.Model):
 name = models.CharField(max_length=20)
 score = models.IntegerField(default=0)
 date = models.DateField()
 def __unicode__(self):
     return u'%s %d %s' % (self.name,self.score,self.date)

 class User(models.Model):
 username = models.CharField(max_length=20)
 passwd = models.CharField(max_length=20)
 def __unicode__(self):
     return u'%s %s' % (self.name,self.passwd)

 class info(models.Model):
 address= models.CharField(max_length=20)
 phone = models.CharField(max_length=20)
 def __unicode__(self):
     return u'%s %s' % (self.address,self.phone)
2)执行建表语句后回显:
   root@precise32:/usr/local/frist_django# python manage.py makemigrations
   Migrations for 'testdb':
   testdb/migrations/0001_initial.py:
   - Create model info
   - Create model Test
   - Create model User

3)此时数据库中应该有这三张表,但是数据库中只有第一个表

 mysql> show tables;
Tables_in_django
testdb_test

4)但是在初始化文件中也是有三张表的建立语句。

   class Migration(migrations.Migration):

    initial = True

    dependencies = [
    ]

    operations = [
        migrations.CreateModel(
            name='info',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('address', models.CharField(max_length=20)),
                ('phone', models.CharField(max_length=20)),
            ],
        ),
        migrations.CreateModel(
            name='Test',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('name', models.CharField(max_length=20)),
                ('score', models.IntegerField(default=0)),
                ('date', models.DateField()),
            ],
        ),
        migrations.CreateModel(
            name='User',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('username', models.CharField(max_length=20)),
                ('passwd', models.CharField(max_length=20)),
            ],
        ),
    ]

新看django,这是怎么回事,为什么只有一个表被建了呢?求大神解释一下。

阅读 4.7k
3 个回答

你得执行下 python manage.py migrate才可以

首先,确定你的models添加到 settings.py 中的 INSTALLED_APPS 中。

可以通过命令 python manage.py syncdb 来自动创建数据库。

如果你只希望打印出sql语句,而不执行sql创建表,可以通过python manage.py sqlall <app_name> 来输出。

python manage.py migrate <appname>

试试?

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题