使用Visual Studio Code和Docker快速搭建Django开发环境

按照本文所述的步骤进行环境构建,只需5分钟即可搭建Django开发环境。
以下是正在使用Django的网站。

    • Pinterest

 

    • ワシントンポスト

 

    • NASA

 

    udemy

目标对象

    • 簡単にプログラミングを始めたい方

 

    • PythonでWEBアプリを作りたい方

 

    Dockerでの開発環境を構築に興味がある方

开发环境

    • macbook 12inch

 

    • macOS Mojave バージョン10.14.4

 

    • VisualStudio Code(以下、VSCodeで略す) バージョン1.34.0

 

    Docker Desktop for Mac
スクリーンショット 2019-05-23 3.09.26
スクリーンショット 2019-07-29 15.04.10
    • VSCode バージョン1.34.0をインストールしておく

拡張機能「Docker」をインストールしておく

Docker Desktop for Macをインストールしておく

在任意的文件夹中准备3个文件。

在这里,准备一个名为Docker的文件夹,并在其中创建以下3个文件:
1. requirements.txt
2. Dockerfile
3. docker-compose.yml

スクリーンショット 2019-07-29 15.32.57

编辑requirements.txt文件

Django==2.2.3
psycopg2
psycopg2-binary

编辑Dockerfile。

FROM python:3.7
ENV PYTHONUNBUFFERED 1
RUN mkdir /code
WORKDIR /code
ADD requirements.txt /code/
RUN pip install -r requirements.txt
ADD . /code/

编辑docker-compose.yml文件

version: "3"

services:
  db:
    container_name: postgres-django
    image: postgres:11
    volumes:
      - ./data/postgres:/var/lib/postgresql
    ports:
      - "5432:5432"
    environment:
      - POSTGRES_DATABASE=django
      - POSTGRES_USER=django
      - POSTGRES_PASSWORD=django
  web:
    container_name: django
    build: .
    volumes:
      - ./data/django:/code
    tty: true
    ports:
      - 8000:8000
    depends_on:
      - db

在Docker文件夹上右击,然后点击”终端”。

スクリーンショット 2019-07-29 15.35.19
スクリーンショット 2019-07-29 16.17.11

使用docker-compose来创建Docker容器。

请在终端上执行以下命令。

// -dオプションを付加するとデーモン(サービス)として起動できる
docker-compose up -d
スクリーンショット 2019-07-29 15.47.06

当查看VSCode的Docker扩展功能时,可以确认有两个容器。
1. docker_web
2. postgres:11

スクリーンショット 2019-07-29 15.51.17

创建一个名为hoge的Django项目。

不管怎样,如果不创建项目就无法开始,所以创建一个hoge项目。

スクリーンショット 2019-07-29 18.34.42

在该终端执行以下命令。

// django-admin startproject プロジェクト名 でプロジェクトを作成する
django-admin startproject hoge
スクリーンショット 2019-07-29 18.53.58

settings.py 的配置

    DATABASE設定をpostgresqlに切り替える。
// 変更前
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
    }
}

// 変更後
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql',
        'HOST': 'db',
    }
}
    ALLOWED_HOSTSを設定する。
// 変更前
ALLOWED_HOSTS = []

// 変更後
ALLOWED_HOSTS = ['*']

开始 Django 项目

在终端上运行以下命令,并在浏览器中访问localhost:8000。

python hoge/manage.py runserver 0.0.0.0:8000

如果屏幕显示火箭画面,那就好了。

后记

    • DjangoのDATABASE設定を手動で切り替えているのでちょっと微妙

切り替え後のdocker imageを作成した上で構築する
DATABASE設定をdocker側にもっていく(いけるのかわからないw)

docker execを使用する記事をよく見かけるがわかりづらいので(私だけでしょうか・・・)Django側にて操作することにしています。

广告
将在 10 秒后关闭
bannerAds