设置 PyCharm 以在 docker 中使用 Django 项目
为了确保每个开发人员都使用相同的受控开发环境,越来越多的团队使用 docker。这样,每个开发人员都将在相同的环境中工作,而不管他们的操作系统如何。使用 docker 作为开发环境还可以减少新开发人员准备编码所需的时间。 Pycharm 是世界上最常用的 Python IDE 之一,并实现了 docker 作为开发环境。今天我们将了解如何在我们的新 IDE 中配置项目。
环境
在开始配置之前,您需要在计算机上安装一些依赖项:
-
PyCharm 可供下载在这里
-
Docker 桌面可用这里
-
一个使用 PostgreSQL 的 Django 项目。您可以使用我们在教程中创建的项目“First steps with Django”
设置解释器 docker
我们现在希望有一个用于 PostgreSQL 的 docker,另一个用于 python 解释器的 docker,我们还希望数据库中的数据是持久的,最后可以访问代码来编辑它。我们将从克隆应用程序开始,并为我们的 python docker 创建一个 dockerfile。如果你不知道我在说什么,你可以看看教程“Deploying an application Django with PostgreSQL and Docker。
git clone https://gitlab.com/code-with-oreo/django-part-3.git .
然后创建一个名为 Dockerfile 的文件:
FROM python:3.8.3-alpine
WORKDIR /app
ENV PYTHONDONTWRITEBYTECODE 1
ENV PYTHONUNBUFFERED 1
RUN apk update && apk add postgresql-dev gcc python3-dev musl-dev
RUN pip install --upgrade pip
COPY requirements.txt /app/requirements.txt
RUN pip install -r requirements.txt
EXPOSE 8000
CMD ["python", "manage.py", "runserver", "0.0.0.0:8000"]
我想你理解这个文件,正如我们在关于部署的教程中解释的那样。这个 Dockerfile 将创建将运行我们的 python 解释器的 docker。对于 PostgreSQL,我们不需要 Dockerfile,官方镜像就足够了。
设置 docker compose 文件
由于我们将有两个 docker 一起运行,我们需要 docker-compose 来管理它们。在项目的根目录下,创建一个文件 docker-compose.yml:
version: '3'
services:
web:
build: .
container_name: MyWebApp
ports:
- "8000:8000"
volumes:
- ./:/app
links:
- db
db:
image: "postgres:latest"
container_name: MyDb
volumes:
- db-data:/var/lib/postgresql/data
environment:
POSTGRES_PASSWORD: yourpassword
volumes:
db-data:
与 Dockerfile 相同,您可能了解此文件。该对象不是关于 dockerizing 应用程序,而是如何配置 Pycharm。
我们还将对我们的设置文件(my_blog/settings.py)进行一些修改:
[...]
ALLOWED_HOSTS = ['*'] #to allow access in local
[...]
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql',
'NAME': 'postgres',
'USER': 'postgres',
'PASSWORD': 'yourpassword',
'HOST': 'db',
'PORT': '5432'
}
}
[...]
现在一切都准备好了,但是如果你运行你的 docker compose 你将会有一个错误,因为数据库是空的。我们可以在终端中解决这个问题,但让我们配置 Pycharm 并通过 IDE 来完成。
在Pycharm中配置一个新的解释器
我们将配置 Pycharm 以使用我们的 docker 作为 python 解释器。为此,打开设置(在 Windows 上为 File > Settings,在 Mac OS 上为 PyCharm > preferences)并打开项目中的 python 解释器部分。

点击右边的三个点然后_add_

在新窗口中,选择 docker-compose,然后选择您的 docker-compose.yml 文件作为配置文件,然后在服务中选择 web:

单击 ok 并继续设置,转到 Languages & Frameworks > Django。您可以在此处启用 Django 支持:

您现在可以应用设置并返回到您的 IDE 主窗口。
添加配置
现在解释器已经准备好了,我们必须告诉 Pycharm 在这个项目中使用这个解释器。在 IDE 的顶部栏中,您应该会看到一个 Add configuration 按钮:

点击它,然后在蓝色的“+”号上选择 Django Server,最后填写所需的信息并选择我们之前创建的解释器作为项目解释器:

然后点击_ok_,配置就完成了。如果您单击_Run_,您的泊坞窗将被自动挂载并且您的应用程序可以访问。
通过 Pycharm 运行manage.py命令
为托管在 docker 中的应用程序运行manage.py命令非常繁重,您每次都需要运行
docker-compose exec YourServiceWeb python3 manage.py YourCommand
值得庆幸的是,Pycharm 会让它变得更容易。在菜单 Tools 中,您现在有一个 Runmanage.pyTask 选项。这将在 IDE 底部打开一个新选项卡,您可以在其中直接执行命令。在我们的例子中,我们想要迁移我们的迁移,所以只需键入migrate,奇迹就会发生。
我希望你喜欢这篇文章,它可以帮助你配置你的项目。如果您有任何问题,请随时发表评论。
更多推荐
所有评论(0)