下面是 Django
初始化数据库的实例攻略:
准备工作
在Django
项目中进行数据库操作之前,需要先在 settings.py
中配置数据库信息。具体数据库的设置信息包括:
- 数据库的类型
- 数据库的名称
- 用户名和密码
- 数据库的 Host 和 Port
- 其他一些可选项
本文将以 PostgreSQL 数据库为例,介绍如何初始化数据库。在开始之前,需要确保已安装 psycopg2
Python 包。
1. 环境搭建
首先,需要在本地搭建好 PostgreSQL
环境。在本地安装好该数据库之后,需要创建一个新的数据库,并且为它创建一个新的用户及密码。
2. 配置 Django 项目
在 settings.py
中设置数据库信息,如下:
DATABASES = {
"default": {
"ENGINE": "django.db.backends.postgresql_psycopg2",
"NAME": "your_database_name",
"USER": "your_username",
"PASSWORD": "your_password",
"HOST": "127.0.0.1",
"PORT": "5432",
}
}
其中,ENGINE
表示数据库引擎的类型,这里指定为 postgresql_psycopg2
。default
表示数据库配置的名称,当在使用 Django
操作数据库时就可以使用这个名称来指定使用哪个数据库。
3. 数据库迁移
在配置完数据库信息后,需要进行数据库迁移操作,以创建数据库中的表。具体步骤如下:
3.1 创建 Django
应用
在创建数据库之前,需要创建一个 Django
的应用,可以通过 python manage.py startapp your_app_name
命令来创建。
3.2 定义模型
在应用中的 models.py
文件中定义模型,例如:
from django.db import models
class Person(models.Model):
name = models.CharField(max_length=100)
age = models.IntegerField()
class Meta:
db_table = 'person'
Person
模型继承自 models.Model
,表示数据库表的一个映射。其中 name
和 age
为该表的两个字段,Meta
中的 db_table
用于指定该模型所对应的数据库表的名称。
3.3 进行迁移操作
完成上述模型定义后,需要执行下列命令来进行数据库迁移操作:
python manage.py makemigrations
python manage.py migrate
makemigrations
命令用于生成迁移文件,而 migrate
命令则用于将生成的迁移文件应用到数据库中。
示例
假设我们创建了一个 DJANGO 应用,应用名为 myapp
。则可以按照以下方式初始化数据库。
示例1
# myapp/models.py
from django.db import models
class Person(models.Model):
name = models.CharField(max_length=30)
age = models.IntegerField()
# 初始化数据库
python manage.py makemigrations
python manage.py migrate
执行 python manage.py makemigrations
命令后,会生成 myapp/migrations/0001_initial.py
文件,该文件内容如下:
# Generated by Django 3.0.7 on 2020-06-14 14:10
from django.db import migrations, models
class Migration(migrations.Migration):
initial = True
dependencies = [
]
operations = [
migrations.CreateModel(
name='Person',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('name', models.CharField(max_length=30)),
('age', models.IntegerField()),
],
),
]
然后执行 python manage.py migrate
命令,会在 your_database_name
数据库中创建名为 myapp_person
的表。
示例2
# myapp/models.py
from django.db import models
class Book(models.Model):
title = models.CharField(max_length=100)
author = models.CharField(max_length=50)
# 初始化数据库
python manage.py makemigrations myapp
python manage.py migrate myapp
执行 python manage.py makemigrations myapp
命令后,会生成 myapp/migrations/0001_initial.py
文件,该文件内容如下:
# Generated by Django 3.0.7 on 2020-06-14 14:20
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
]
operations = [
migrations.CreateModel(
name='Book',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('title', models.CharField(max_length=100)),
('author', models.CharField(max_length=50)),
],
),
]
然后执行 python manage.py migrate myapp
命令,会在 your_database_name
数据库中创建名为 myapp_book
的表。
到此,在Django
框架上初始化数据库的流程就结束了。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:django初始化数据库的实例 - Python技术站