📜  在 django 数据库中创建表 - Python (1)

📅  最后修改于: 2023-12-03 15:23:08.406000             🧑  作者: Mango

在 Django 数据库中创建表 - Python

在 Django 中,你可以使用模型来定义数据库的结构并创建数据库表。模型是一个Python类,它继承自 django.db.models.Model,并且定义了一些字段来描述表的结构。

创建模型

下面我们创建一个简单的模型来说明如何定义模型。假设我们要在数据库中创建一个名为 Person 的表,它包含两个字段 nameage

from django.db import models

class Person(models.Model):
    name = models.CharField(max_length=50)
    age = models.IntegerField()

在这个模型中,Person 继承自 models.Model,并且定义了两个字段,一个是 CharField 类型的 name,最大长度为50,一个是 IntegerField 类型的 age

同步数据库

定义完模型后,我们需要将其同步到数据库中。Django 提供了一个叫做 migrate 的命令来同步数据库。注意,如果这是你第一次使用 Django,你需要先创建一个项目,然后在项目目录下运行以下命令:

# 创建一个名为 myproject 的 Django 项目
django-admin startproject myproject

接下来,我们在 myproject 目录下创建一个名为 myapp 的应用,并将 Person 模型定义在 myapp/models.py 文件中。

# 创建一个名为 myapp 的 Django 应用
python manage.py startapp myapp

在创建完应用后,我们需要告诉 Django 如何连接到数据库。默认情况下,Django 使用 SQLite 作为其数据库引擎,这意味着我们无需进行任何配置即可开始使用。当然,你也可以使用其他数据库引擎,例如 MySQL 或 PostgreSQL。

myproject/settings.py 文件中,我们可以找到以下内容:

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

在这个配置中,我们定义了一个名为 default 的数据库连接,并指定了使用 SQLite 引擎,并将数据库文件保存在项目目录下的 db.sqlite3 文件中。如果你使用其他数据库引擎,请相应地进行配置。

在配置好数据库连接后,我们可以运行以下命令来同步数据库:

python manage.py makemigrations myapp
python manage.py migrate

makemigrations 命令将根据模型定义创建一个迁移文件,其中包含了数据库表结构的改变。然后,我们运行 migrate 命令来应用这些改变并创建数据库表。

如果一切顺利,你应该能够看到以下输出:

Operations to perform:
  Apply all migrations: myapp
Running migrations:
  Applying myapp.0001_initial... OK

至此,我们已经成功地创建了一个名为 Person 的表,并将其保存在数据库中。你可以通过 Django 提供的 ORM 与数据库进行交互,例如:

from myapp.models import Person

# 创建一个新的 Person 对象并保存到数据库中
person = Person(name='Tom', age=24)
person.save()

# 从数据库中获取所有 Person 对象
people = Person.objects.all()
print(people)  # <QuerySet [<Person: Person object (1)>]>
总结

在 Django 中,你可以使用模型来描述数据库表的结构,然后通过 migrate 命令将其同步到数据库中。通过这种方式,你可以使用 Python 代码来操作数据库,而无需编写 SQL 语句。