Sqlalchemy与Docker-设置
#python #database #docker #sqlalchemy

The Setup

图像荣誉为Sies Kranen

嗨,我发现一些新发现可以在Docker&Sqlalchemy上与您分享,应在我们第二轮啤酒ðº之前完成。

这是一个系列,我记录了在进入Sqlalchemy的旅程中发现的。如果您还没有看过我以前的帖子,请查看它们 - 它们位于此页面的顶部和底部。

遵循的必要要求是Python,数据库和Docker的基本知识。 坚持,我将解释每个步骤,以便您仍然可以跟随。

大纲

  • Docker安装
  • Postgres引擎设置
  • 数据库设置
  • 入门依赖安装

请注意,这有点,但这是值得的。确实跟随,您不妨发现一些新事物。是的,酒吧!请在这里给我的朋友一瓶啤酒。

Docker安装

我们实际上需要Docker才能去Sqlalchemy之旅吗?否。我选择使用Docker的唯一原因是,因为设置很快,轻量级 + Docker也很有名。

Docker提供平台,可帮助我们在容器中交付软件包。我们需要从Docker那里需要的软件包是一个数据库,Postgres是确切的。

安装Docker很简单,如果您没有安装它,see how to,我会等您。

好吧,我假设您已经安装了Docker。恭喜,您现在可以访问Docker Hub上可用的所有软件包,并且使用一个简单的命令,您可以像我们现在一样为您提供任何想要的产品。

Postgres引擎设置

docker pull postgres:12-alpine

在您的终端上运行上方命令,您应该自动使用Postgres数据库图像。图像是可执行文件(您单击的PC的图标)是桌面,但对于Docker而言。现在我们有了图像,让我们通过在命令下运行
来启动我们的Postgres程序

docker run --env POSTGRES_USER=admin --env POSTGRES_PASSWORD=password -d -p 5432:5432 postgres:12-alpine 

我知道,我知道!!!可执行文件更容易单击,我也同意您。让我们尝试了解正在发生的事情。这是位和解释

  • docker run是主命令,说我们要在机器或码头轮毂上运行可用的docker软件包。

  • --env POSTGRES_USER=admin --env POSTGRES_PASSWORD=password每个数据库都需要一个用户来访问它和密码以识别该用户,因此我们在这里制作

  • -d d消失了 - 哇,但是在幼儿园,我被教了D是为狗。好吧,这是2.0版

  • -p 5432:5432规定端口将访问我们的数据库引擎,我们还可以使您的PC访问该端口。这里有两个陈述,因此为什么我们分别为每个陈述有两个5432。您可以自由地将端口比作该单个部分,如果使手机充电器清晰起见,则可以将其比较。请记住,只有一个充电器可以一次容纳,因此它是用于系统的(另一个程序不能使用将其提供给Postgres的5432端口)。我们只是通过将系统拟合到数据库引擎端口5432:5432
    来做到这一点。 。

  • postgres:12-alpine这是识别我们正在尝试运行的Docker图像的名称

请注意

为简单起见,我使用了一些概念来解释,例如-d实际上是用于独立模式而不是消失的。当使用-d时,应该给出输出的内容与输出渲染器分离。消失简化了我刚刚解释分离的所有这些陈述。

那很多。自由地看一看,没有我的朋友。

确认我们有一个postgres:12-alpine映像的实例,请使用以下命令

docker ps -a

您应该看到一个容器,其图像列保存值postgres:12-alpine,端口列保存值0.0.0.0:5432->5432/tcp。请注意列,名称或容器ID,并注意它们所拥有的值,因为下面的命令将需要其中的任何一个。

docker exec -it (NAME value | CONTAINER_ID value ) bash

运行在命令上方的运行将使BASH访问数据库引擎。当您的ran docker ps -a时,请用tostgres容器拥有的任何值替换名称或容器_ID,因为每个人都不同。您的命令应该看起来像这个docker exec -it replace_me_with_the_value bash

数据库设置

要设置我们将要使用的数据库,我们需要使用我们在创建Postgres实例时提供的用户详细信息访问默认数据库环境。

psql --username=admin --password

在上方运行命令将激活一个交互式界面,该界面将用于给管理用户创建Postgres实例的密码(应为password)。

要创建数据库,请将用户分配给它,并将所有数据库特权授予分配的用户(这类似于我们使用--env=POSTGRES_USER & --env=POSTGRES_PASSWORD所做的工作),运行下一个命令

CREATE DATABASE learnsqlalchemy;
CREATE USER learner WITH PASSWORD 'StrongPassword123';
GRANT ALL PRIVILEGES ON DATABASE learnsqlalchemy TO learner;

运行时上述命令将为我们提供以下配置

database_name = Learningsqlalchemy

database_user =学习者

database_password = strongpassword123

免责声明:

这只是一个学习过程,因此这些值不得在真实的项目中使用。请确保为每个设置使用更强的价值。只有你知道

的东西

入门依赖项安装

要开始,我们需要安装一些依赖项,但是在安装它们之前,请注意我们将在the directory structure setup for this journey中工作。在运行以下任何命令之前,要导航到目录(如果没有设置),只是为了保持一切。

注意:

以下命令应在与创建和设置数据库中使用的终端不同的终端上运行。您还可以关闭用于设置数据库的终端,因为我们已经完成了

作为最佳实践,我们将需要一个环境来隔离我们在此旅程中安装的任何工具/依赖项,从我们的PC或将来的其他旅程中隔离,以避免冲突。为此,Python进行了营救。在下面运行命令

python3 -m venv env

venv是创建虚拟环境的程序。在这种情况下,我们将其称为env(您可以将其命名为任何乐趣,但我们将其作为ENV作为旅程)。

您只创建了虚拟环境,需要在进行依赖项安装之前激活它。如果您在Windows和第二个命令上,请运行第一个命令,如果您在Mac/Linux上

第一个命令

source env\Script\activate

第二命令

source env\bin\activate

现在创建并激活了虚拟环境,运行以下命令以安装依赖项。

pip3 install psycopg2-binary==2.9.3 SQLAlchemy==1.4.41

安装的依赖项为 sqlalchemy ,这是我们的焦点,Postgres数据库适配器, psycopg2-binary ,Sqlalchemy可以通过它与Postgres数据库进行交互。 SQLalchemy可以与MySQL,MS Server E.T.C.交互。对于这些不同的数据库,需要一个不同的适配器来告诉SQLalchemy,它将与哪些适配器进行交互。

如果您做到了这么远,那么您肯定需要另一种啤酒,我可以提出另一个要求吗?

我们已经介绍了很多,这是一个摘要:

我们从安装Docker开始。 Docker使我们可以访问多个软件包。我们安装了Postgres:12-Alpine软件包映像(docker pull postgres:12-alpine),并启动了一个实例,该实例使用开放端口连接到我们的PC,并提供了默认用户凭据(docker run --env POSTGRES_USER=admin --env POSTGRES_PASSWORD=password -d -p 5432:5432 postgres:12-alpine)。我们的旅程数据库是通过使用给定的默认用户凭据访问运行的Postgres实例来创建的。我们开始创建和激活一个虚拟环境,并在其中安装了入门依赖项。

感谢您与我一起坚持下去。如果您观察到任何错误或有任何疑问,请将其留在评论中。

喜欢,跟随我的旅程并分享,如果您觉得它有用-Cheersð»。哦!我现在会回答你,是的,I take coffee too