前边只是简单的执行了下migrate把自带的几个表创建了一下。这个实例是如何创建自己的表。
1.创建模型
模型就是MTV中的M(Mondel).模型跟数据库中的表对应。
在脚本polls/models.py中定义数据库表的名称和表的字段,分别与类名和属性对应。
- from django.db import models
-
- # Create your models here.
- class Question(models.Model):
- question_text=models.CharField(max_length=200)
- pub_date=models.DateTimeField('date published')
-
- class Choice(models.Model):
- question=models.ForeignKey(Question, on_delete=models.CASCADE)
- choice_text=models.CharField(max_length=200)
- votes=models.IntegerField(default=0)
2.激活模型
在项目的settings.py文件中加入polls应用程序,书里说要加polls.apps.PollsConfig,直接加polls也可以。
- INSTALLED_APPS = [
- 'django.contrib.admin',
- 'django.contrib.auth',
- 'django.contrib.contenttypes',
- 'django.contrib.sessions',
- 'django.contrib.messages',
- 'django.contrib.staticfiles',
- 'polls',
- ]
3.生成migrate脚本
python manage.py makemigrations
此命令会生成一个升级脚本(我觉得它就是给数据库升级用的,所以叫升级脚本,而且脚本有编号,非常符合这个名字)
polls\migrations\0001_initial.py
- C:\Users\Administrator\django3\mysite>python manage.py makemigrations
- Migrations for 'polls':
- polls\migrations\0001_initial.py
- - Create model Question
- - Create model Choice
-
可以看到每个表会自动创建一个id字段

4.升级数据库
python manage.py migrate
执行此命令会自动执行第三步的升级脚本
- C:\Users\Administrator\django3\mysite>python manage.py migrate
- Operations to perform:
- Apply all migrations: admin, auth, contenttypes, polls, sessions
- Running migrations:
- Applying polls.0001_initial... OK
5.查看结果
SQLiteSpy查看,创建了两张表,命名是按照应用程序_模型,外键为模型外键名_id

