Django 数据库
2018年1月27日1 blog/models.py开始编写一个数据模型类
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
from django.db import models from django.utils import timezone from django.contrib.auth.models import User class BlogArticles(models.Model): title = models.CharField(max_length=300) #规定属性限制长度 author = models.ForeignKey(User, related_name="blog_posts") #一个用户对应多个文章 body = models.TextField() publish = models.DateTimeField(default=timezone.now) class Meta: ordering = ("-publish",) #规定实例对象的显示顺序 def __str__(self): return self.title |
2. 执行python manage.py makemigrations
1 |
python manage.py makemigrations |
会生成blog/migrations/0001_initial.py这个文件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
from __future__ import unicode_literals from django.conf import settings from django.db import migrations, models import django.db.models.deletion import django.utils.timezone class Migration(migrations.Migration): initial = True dependencies = [ migrations.swappable_dependency(settings.AUTH_USER_MODEL), ] operations = [ migrations.CreateModel( name='BlogArticles', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('title', models.CharField(max_length=300)), ('body', models.TextField()), ('publish', models.DateTimeField(default=django.utils.timezone.now)), ('author', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='blog_posts', to=settings.AUTH_USER_MODEL)), ], options={ 'ordering': ('-publish',), }, ), ] |
3.执行python manage.py sqlmigrate blog 0001
1 |
python manage.py sqlmigrate blog 0001 |
将0001转化为sql语句
4.执行python manage.py migrate
1 |
python manage.py migrate |
创建数据库了