iT邦幫忙

0

[DAY1] Django與Docker Compose後端開發實戰 - Django項目的創建與環境設置

  • 分享至 

  • xImage
  •  

在這篇技術教學文章中,我們將介紹如何使用Django和Docker Compose來創建和設置一個後端開發環境。我們將分步驟進行,從下載Django並創建項目開始,到構建Docker Compose文件以便在開發階段使用,在開始之前,您需要先下載Docker和Python到您使用的裝置上:

1. 下載Django並創建Django項目

首先,我們需要下載Django並創建一個新的Django項目。請按照以下步驟操作:

  • 創建項目根目錄
mkdir <project root name>
  • 安裝Django
pip install django
  • 使用django-admin命令創建Django項目
django-admin startproject backend

2. 建構Docker-compose

接下來,我們將構建Docker Compose文件來設置開發環境。我們需要在項目根目錄下創建Dockerfiledocker-compose-local.yml文件,同時還需要設定requirements.txt.env文件。

Dockerfile
Dockerfile是用來定義應用程序的Docker映像的配置文件。在這裡,我們將定義一個Python 3.11環境,安裝所需的Python包,並將Django項目代碼複製到容器中。在根目錄下創建一個名為Dockerfile的文件,並添加以下內容:

FROM python:3.11
LABEL maintainer="rex.ultra"
ENV PYTHONUNBUFFERED 1
WORKDIR /app
COPY requirements.txt /app/
RUN pip install --upgrade pip && pip install -r requirements.txt
COPY ./backend /app/

這邊解釋一下Dockerfile每一行是做什麼的

  • 使用python:3.11作為基礎映像。
  • 設定了一些環境變量,例如PYTHONUNBUFFERED,確保Python輸出不會被緩存。
  • 設置工作目錄為/app。
  • 複製requirements.txt文件到容器中並安裝Python包。
  • 將Django項目的代碼複製到容器中。

docker-compose-local.yml
docker-compose-local.yml文件用來定義和管理多個Docker容器的配置。在這裡,我們將定義三個服務:backend(Django應用)、redis(Redis數據庫)、mariadb(MariaDB數據庫)。在根目錄下創建一個名為docker-compose-local.yml的文件,並添加以下內容

version: "3.9"

services:
  backend:
    container_name: backend-api-services
    build:
      context: .
      dockerfile: Dockerfile
    command: python manage.py runserver 0.0.0.0:8000
    env_file:
      - .env
    volumes:
      - ./backend:/app
    ports:
      - "8000:8000"
    restart: always
    depends_on:
      - mariadb
    networks:
      - backend_net

  redis:
    container_name: backend-redis
    image: redis:alpine
    networks:
      - backend_net

  mariadb:
    container_name: backend-mariadb
    image: mariadb:10.5
    environment:
      - MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD}
      - MYSQL_DATABASE=${MYSQL_DATABASE}
      - MYSQL_USER=${MYSQL_USER}
      - MYSQL_PASSWORD=${MYSQL_PASSWORD}
    volumes:
      - mariadb_data:/var/lib/mysql
    networks:
      - backend_net

volumes:
  mariadb_data:

networks:
  backend_net:
    driver: bridge
  • 定義了一個名為backend的服務,使用Dockerfile構建映像,並運行Django開發服務器。
  • 定義了一個名為redis的服務,使用Redis官方映像。
  • 定義了一個名為mariadb的服務,使用MariaDB官方映像,並配置數據庫環境變量。
  • 使用了Docker的卷功能來持久化MariaDB的數據。
  • 設定了一個橋接網絡backend_net來連接這些服務。

requirements.txt
此文件列出了Django項目所需的所有Python包,並將在構建Docker映像時自動安裝。在根目錄下創建一個名為requirements.txt的文件,並添加以下內容

Django>=4.0
djangorestframework
mysqlclient
redis
python-dotenv

.env
接著我們需要定義數據庫的環境變量,用於配置MariaDB數據庫。在根目錄下創建一個名為.env的文件,並添加以下內容

MYSQL_ROOT_PASSWORD=mariadb_root_password
MYSQL_DATABASE=mydatabase
MYSQL_USER=myuser
MYSQL_PASSWORD=mypassword

總結

通過以上步驟,我們成功地創建了一個Django項目,並使用Docker Compose來設置開發環境。這種方法不僅可以簡化開發過程,還能確保項目的可移植性和可擴展性。下一篇我們將教會您如何設定Mariadb和Redis,以及如何使用Redis!

[DAY2] Django與Docker Compose後端開發實戰 - MariaDB與Redis整合與應用


圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言