图像荣誉为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软件包。
。 p> li> -
--env POSTGRES_USER=admin --env POSTGRES_PASSWORD=password
:每个数据库都需要一个用户来访问它和密码以识别该用户,因此我们在这里制作
。 p> li> -
-d
: d消失了 - 哇,但是在幼儿园,我被教了D是为狗。好吧,这是2.0版
。 p> li> -
-p 5432:5432
:规定端口将访问我们的数据库引擎,我们还可以使您的PC访问该端口。这里有两个陈述,因此为什么我们分别为每个陈述有两个5432
。您可以自由地将端口比作该单个部分,如果使手机充电器清晰起见,则可以将其比较。请记住,只有一个充电器可以一次容纳,因此它是用于系统的(另一个程序不能使用将其提供给Postgres的5432端口)。我们只是通过将系统拟合到数据库引擎端口5432:5432
来做到这一点。 。 p> li> -
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