Django自带的数据库为什么是空的

Django自带的数据库为什么是空的

Django自带的数据库为什么是空的

在使用Django开发Web应用时,经常会遇到一个问题:为什么使用Django自带的数据库时,数据库中没有任何表和数据?这个问题常常困扰着刚开始学习Django的开发者。本文将详细解释为什么Django自带的数据库是空的,并探讨如何在Django中创建和管理数据库。

1. Django中的数据库

Django是一个使用Python编写的Web应用开发框架,它提供了许多强大的功能来简化Web应用开发过程。其中一个重要的功能就是数据库的管理。Django支持多种数据库后端,包括SQLiteMySQL、PostgreSQL等。在Django项目中,通常会在settings.py中配置数据库后端和连接信息。

# settings.py

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': BASE_DIR / 'db.sqlite3',
    }
}

在上面的示例中,使用了SQLite作为默认的数据库后端,并指定了数据库文件的路径。

2. Django的数据库迁移

在Django中,数据库的创建和管理是通过迁移(migration)来实现的。迁移是一种自动化的方式,用于更新数据库的结构和数据,以匹配当前的代码。当我们在Django项目中定义了模型类(Model)后,需要通过迁移将这些模型类映射到数据库中的表。

# models.py

from django.db import models

class Book(models.Model):
    title = models.CharField(max_length=100)
    author = models.CharField(max_length=50)
    pub_date = models.DateField()

在定义了Book模型类后,需要执行以下命令来生成迁移文件和应用迁移:

python manage.py makemigrations
python manage.py migrate

这样就会在数据库中创建一个名为book的表,其中包含titleauthorpub_date三个字段。

3. 数据库的初始化

在创建了数据库表之后,需要手动添加一些数据用于测试或演示。在Django中,可以使用manage.py shell命令进入Python shell,然后通过模型类的操作方法来添加数据。

python manage.py shell

>>> from myapp.models import Book
>>> book1 = Book(title='Python Crash Course', author='Eric Matthes', pub_date='2015-11-01')
>>> book1.save()

通过上述操作,我们给book表添加了一条数据,现在可以在数据库中查看这条数据。

4. Django Admin后台管理

Django提供了一个强大的后台管理界面,可以方便地管理数据库中的数据。在admin.py文件中注册模型类后,就可以在后台管理界面中查看、添加、修改和删除数据。

# admin.py

from django.contrib import admin
from myapp.models import Book

admin.site.register(Book)

然后在浏览器中访问/admin路径,输入管理员账号密码后就可以进入后台管理界面,查看并管理数据库中的数据。

5. 总结

在Django中,使用自带的数据库时,数据库是空的是因为Django默认不会自动创建数据表,需要通过迁移来生成数据库表。开发者需要定义模型类,并执行迁移命令来更新数据库结构。另外,可以通过Django提供的后台管理界面方便地管理数据库中的数据。希望本文对你理解为什么Django自带的数据库是空的有所帮助。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程