Django Sqlite 数据库,在已有表中添加新字段

Django 使用默认的 sqlite 数据库,想在已经创建的表中添加一个新的字段,操作很简单。

1、直接在你要添加新字段的app的 models.py 文件中添加,如下:

# -*- coding:utf-8 -*-
from __future__ import unicode_literals

from django.db import models

class Blog(models.Model):
    name = models.CharField(max_length=100)
    tagline = models.TextField()
    email = models.CharField(max_length=30) # 要将要添加的新字段 1

    def __str__(self):
        return self.name

2、然后在dos窗口中输入:python manage.py makemigrations
这里写图片描述

3、输入:1 (这里要求你设置新建字段的默认值,它会在新建这个字段的同时把默认值也添加上去,)
这里写图片描述

4、如果不想让他有值,我们直接输 ”(中间没有空格),一样能达到效果,但是不能不设置默认值,那么问题来了,如果是数值类型呢,默认值为 ” 显然不行,设为0嘛,如果是年龄有不合适,怎么办呢?不急,我们下边会说到。先把剩下步骤完成先。
这里写图片描述

5、最后一步,输入:python manage.py migrate
这里写图片描述

查看数据库,新字段email已经加进来了,如果你设置了默认值,原来的这些数据的Email的值都会设为你设置的默认值。这个可视化工具下载的地址:http://download.csdn.net/download/liangshilin/10144260
这里写图片描述

好,这里该说一下如何让新添的字段可以设置为null了,其实很简单,如下 age字段,将 ‘blank=True,null=True’ 添加到括号里就行了,然后只需重复上面两个步骤: python manage.py makemigrations -> python manage.py migrate 就能添加新字段了,如果不是数值型,添加 ‘blank=True’ 就可省略设置默认值那步骤。

# -*- coding:utf-8 -*-
from __future__ import unicode_literals

from django.db import models

class Blog(models.Model):
    name = models.CharField(max_length=100)
    tagline = models.TextField()
    email = models.CharField(max_length=30) # 要将要添加的新字段 1

    age = models.IntegerField(blank=True,null=True) # 新添加字段 2

    def __str__(self):
        return self.name

猜你喜欢

转载自blog.csdn.net/liangshilin/article/details/78710711