📜  如何在 Django 中使用 PostgreSQL 数据库?(1)

📅  最后修改于: 2023-12-03 14:52:16.544000             🧑  作者: Mango

如何在 Django 中使用 PostgreSQL 数据库

一、安装 PostgreSQL

在使用 Django 中的 PostgreSQL 数据库前,需要先安装 PostgreSQL 数据库。可以访问 PostgreSQL 官网 下载并安装最新版的 PostgreSQL 数据库。安装完成后,务必将 PostgreSQL 数据库的 bin 目录添加到系统环境变量中。

二、安装 psycopg2

psycopg2 是一个用于 Python 的 PostgreSQL 数据库驱动程序。在使用 Django 中的 PostgreSQL 数据库前,需要先安装 psycopg2。

pip install psycopg2

三、设置 Django 项目

在 Django 项目中设置 PostgreSQL 数据库需要在 settings.py 文件中进行配置。打开 settings.py 文件,在 DATABASES 中添加如下代码:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql',
        'NAME': 'your_database_name',
        'USER': 'your_username',
        'PASSWORD': 'your_password',
        'HOST': '127.0.0.1',
        'PORT': '5432',
    }
}

其中,'your_database_name' 是你要连接的数据库名称,'your_username' 是连接到 PostgreSQL 数据库的用户名,'your_password' 是连接到 PostgreSQL 数据库的密码,'127.0.0.1' 是 PostgreSQL 数据库所在的 IP 地址,'5432' 是 PostgreSQL 数据库的默认端口号。

四、同步数据库

在 settings.py 文件中完成 PostgreSQL 数据库的配置后,需要以命令行形式同步数据库。在 Django 项目的根目录下,执行以下命令:

python manage.py makemigrations
python manage.py migrate

执行以上两条命令后,Django 项目就可以连接到 PostgreSQL 数据库。

如果在执行命令时出现以下提示:

django.core.exceptions.ImproperlyConfigured: Error loading psycopg2 module: No module named 'psycopg2'

则需要先按照第二步中的介绍安装 psycopg2 才能继续执行命令。

五、使用数据库

在成功连接到 PostgreSQL 数据库后,就可以在 Django 项目中使用数据库了。通过 models.py 文件,定义一个数据模型:

from django.db import models

class YourModelName(models.Model):
    id = models.AutoField(primary_key=True)
    name = models.CharField(max_length=30)
    age = models.IntegerField()

执行以下命令,将该模型同步到 PostgreSQL 数据库中:

python manage.py makemigrations
python manage.py migrate

现在,我们就可以在 Django 项目中使用该数据模型了。以下是一些操作示例:

# 添加数据
your_model_name = YourModelName(name='Jerry', age=18)
your_model_name.save()

# 查询数据
YourModelName.objects.all()

# 修改数据
your_model_name = YourModelName.objects.get(name='Jerry')
your_model_name.age = 19
your_model_name.save()

# 删除数据
your_model_name = YourModelName.objects.get(name='Jerry')
your_model_name.delete()

经过以上操作,就可以在 Django 中使用 PostgreSQL 数据库了。