如何在Django中连接PostgreSQL?

在这篇博客中,我们将看到如何将PostgreSQL与Django项目连接起来。我将在Virualenv中执行这些任务。

什么是Virualenv?

Virualenv是一种方法,你可以为不同的项目创建不同的python环境。那么你为什么要这样做呢?比如说你有多个项目,它们都依赖于一个软件包,比如说是flask或者Django之类的,每个项目都可能使用不同版本的Django或者不同版本的flask,如果你去升级软件包,那么可能会破坏你的几个网站,这可能不是你想做的。如果这些项目中的每一个都有一个隔离的环境,他们只需要自己的依赖和包,以及特定的版本。这就是Virualenv允许我们做的事情。

所以首先我将使用virtualenv创建一个虚拟环境。如果你的机器没有virtualenv,先用下面的命令安装virtualenv。

$ pip install virtualenv

之后,使用以下命令创建一个虚拟环境:

$ python3 -m virtualenv myenv1

在成功创建虚拟环境后,只需要激活虚拟环境,这样你就可以在该虚拟环境中工作。激活只需运行这个命令:

$ source myenv/bin/activate

安装Django

现在需要在虚拟环境中安装Django:

$ pip install django==version

在上图中你可以看到,首先我激活了我的虚拟环境,你可以从右侧验证,之后,我在同一个虚拟环境中安装了Django的最新版本。

为了连接到Django项目中的PostgreSQL数据库服务器,使用psycopg2数据库适配器。在同一个虚拟环境中也要安装psycopg2适配器。要安装的话,请运行下面的命令:

$ pip install django psycopg2 

创建Django项目

现在先创建一个Django项目。下面是创建Django项目的方法,只需运行下面的命令:

$ django-admin startproject postgresProject

配置Diango的数据库配置

现在是时候将Django项目与我们的PostgreSQL数据库连接起来了。为了连接,请进入项目目录中的setting.py文件。在这个文件中你会看到一个数据库部分,你必须在这里配置PostgresSQL。在下面的图片中,你可以看到我正在使用os模块来获取所有的环境变量。

要获得所有的环境变量,首先在.bashrc文件中导出以下变量。

DB_HOST=<db_hostname>
DB_NAME=<db_name>
DB_USER=<db_username>
DB_PASS=<db_password>

创建表

现在我们可以运行迁移了,在开始前,我将在同一个项目中创建一个Django应用程序,并从该应用程序中创建一个PostgreSQL数据库的表。因此,首先通过以下命令创建一个Django应用程序。

$ python manage.py startapp myapp

在成功创建应用程序后,进入models.py文件并相应地定义表。下面我附上一张图片,我在其中定义了一个有三列的表。

在更新models.py之后,必须将应用程序注册到项目的setting.py中的INTSALLED_APPS部分。

迁移表到PostgreSQL数据库

现在,我们已经成功地写好了我们的表,但这个表还没有被发送到PostgreSQL上。所以我们必须按照下面步骤操作。

  • makemigrations
  • migrate
$ python manage.py makemigrations

然后

$ python manage.py migrate

现在我们已经成功创建了PostgreSQL数据库,并将Django项目中的所有表迁移到PostgreSQL。你可以在下图中看到表my_test_table已经创建。

参考

https://docs.djangoproject.com/en/4.0/ref/databases/

总结

在这篇文章中,我们学习了如何创建虚拟环境,如何创建Django项目和应用程序,最后我们学习了如何将Django项目与Postgresql连接起来。我希望你喜欢这篇博客,请分享你的评论以获得宝贵的反馈。谢谢。

原文标题:How to Connect PostgreSQL With Django Project
原文作者:Jubair Ahmad
原文地址:https://blog.knoldus.com/how-to-connect-postgresql-with-django-project/


免责声明:

1、本站资源由自动抓取工具收集整理于网络。

2、本站不承担由于内容的合法性及真实性所引起的一切争议和法律责任。

3、电子书、小说等仅供网友预览使用,书籍版权归作者或出版社所有。

4、如作者、出版社认为资源涉及侵权,请联系本站,本站将在收到通知书后尽快删除您认为侵权的作品。

5、如果您喜欢本资源,请您支持作者,购买正版内容。

6、资源失效,请下方留言,欢迎分享资源链接

文章评论

0条评论