docker-compose中整合Django和MySQL

  1. 创建Django项目的Dockerfile,写入以下内容:

    FROM python:3.7
    ENV PYTHONUNBUFFERED 1
    
    # 添加 Debian 清华镜像源
    RUN echo \
        deb https://mirrors.tuna.tsinghua.edu.cn/debian/ buster main contrib non-free\
        deb https://mirrors.tuna.tsinghua.edu.cn/debian/ buster-updates main contrib non-free\
        deb https://mirrors.tuna.tsinghua.edu.cn/debian/ buster-backports main contrib non-free\
        deb https://mirrors.tuna.tsinghua.edu.cn/debian-security buster/updates main contrib non-free\
        > /etc/apt/sources.list
    
    RUN apt-get update
    RUN apt-get install python3-dev default-libmysqlclient-dev -y
    
    RUN mkdir /code
    WORKDIR /code
    # 添加 pip 清华镜像源
    RUN pip install pip -U -i https://pypi.tuna.tsinghua.edu.cn/simple
    ADD requirements.txt /code/
    # 添加 pip 清华镜像源
    RUN pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
    ADD . /code/
    
  2. 创建docker-compose.yaml文件,写入以下内容:

    version: "3"
    services:
      app:
        restart: always
        build: .
        command: bash -c "python manage.py makemigrations && python manage.py migrate && python manage.py runserver 0.0.0.0:8000"
        volumes:
          - .:/code
        ports:
          - "8001:8000"
        depends_on:
          - db
      db:
        image: mysql:5.7
        volumes:
          - ./mysql:/var/lib/mysql
        ports:
          - "3306:3306"
        restart: always
        environment:
          - MYSQL_ROOT_PASSWORD=mypassword
          - MYSQL_DATABASE=django_app
    
    
  3. 修改Django中连接MySQL数据库的配置文件

    DATABASES = {
        'default': {
            'ENGINE': 'django.db.backends.mysql',
            'NAME': 'django_app',
            'USER': 'root',  # MySQL的用户名,默认为root
            'PASSWORD': 'mypassword',  # MySQL的密码,docker-compose文件中指定
            'HOST': 'db',  # MySQL的主机名,docker-compose文件中指定
            'PORT': '3306',  # 端口,docker-compose文件中指定
            'OPTIONS': {
                'charset': 'utf8mb4'
            },
        }
    }
    
  4. 启动docker-compose
    启动docker-compose

  5. 测试MySQL是否成功连接
    首先新建一个app,定义一个model
    在这里插入图片描述
    编写一个视图函数,从表中增加数据和获取数据:
    在这里插入图片描述
    浏览器中访问 http://localhost:8001 即可看到以下结果:
    在这里插入图片描述
    至此,docker-compose整合Django和MySQL的基本操作和思路就完成了,如果之后有需要详尽的地方,欢迎大家指出,我看到后会更新以下这篇文章!!

本环境的示例代码下载地址:https://download.csdn.net/download/weixin_40409015/12533094

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值