Django学习笔记 2 1_数据库 - linchuan1982/meta GitHub Wiki

Django学习笔记-2-1 数据库

一. 数据库配置

1. 修改pro_dir/setting.py中数据库的配置,连接上数据库

::注意修改TIME_ZONE = 'Asia/Shanghai'::

2. 初始化Django需要的数据库表

$ python manage.py migrate
这条命令会查询 pro_dir/setting.py中的INSTALLED_APPS设置,并在数据库中创建对应的表。

二. 创建模型

在对应app/model.py中创建模型:

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)

三. 激活模型

0. 每个应用都有自己的AppConfig(配置信息),存放在apps.py文件中

例如polls对应的AppConfig会由Django自动生成在pools/apps.py中:

from django.apps import AppConfig


class PollsConfig(AppConfig):
    name = 'polls'

其对应的点式路径为: 'polls.apps.PollsConfig' 需要在项目的settings.py中添加该AppConfig。

1. 项目/settings.py中添加应用的AppConfig的点式路径

目的是为了能够让Django能够安装对应的应用 project_dir/settings.py

INSTALLED_APPS = [
    'polls.apps.PollsConfig',
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
]

2. makemigrations让Django检查对model文件的修改

通过运行 makemigrations 命令,Django 会检测你对模型文件的修改,并且把修改的部分储存为一次迁移。
$ python manage.py makemigrations polls

3. migrate应用数据库迁移

$ python manage.py migrate

数据库使用总结

1. 修改app对应的models.py文件,改变模型

2. 在project_dir/settings.py中增加对应AppConfig的点式路径

(app目录下apps.py中会由Django自动生成,对应的点式路径就是:app.apps.AppNameConfig)

3. python manage.py makemigrations appName

让Django检查对应appConfig的修改,生成数据库迁移的代码(规则)

4. python manage.py migrate

应用数据库迁移

如何快速同步线上的数据库结构

1. 删除app下migrations目录下的文件

2. make migrations app

3. migrate app --fake-initial

DJANGO_SETTINGS_MODULE="aivideo.settings_local" python manage.py migrate asset --fake-initial