docker 容器化部署 Flask 项目_MySQL+Gunicorn+Nginx

本文环境:

  • Linux 发行版:Ubuntu Focal 20.04.3 (LTS)
  • Linux 内核:Linux 5.4.0-90-generic
  • Docker 版本:20.10.11, build dea9396
  • MYSQL:5.7.36
  • Python:3.7.9
  • Flask:2.0.2
  • Gunicorn:20.1.0
  • Nginx:1.21.4

搭建 Linux 环境可参考:

部署前提

已启动数据库。本文数据库使用 mysql 5.7,数据库 IP 地址为 192.168.1.11 。

登录 mysql 创建测试数据库及用户:

-- 创建应用数据库
mysql> CREATE DATABASE demo;

-- 创建数据库用户
mysql> CREATE USER 'demouser'@'%' IDENTIFIED BY 'demo123';

-- 授权
mysql> GRANT ALL PRIVILEGES ON demo.* TO 'demouser'@'%';

创建测试项目

目录结构

└── flask_project
    ├── docker-compose.yml
    ├── flaskapp
    │   ├── app.py
    │   ├── config.py
    │   ├── Dockerfile
    │   ├── gunicorn.config.py
    │   └── requirements.txt
    ├── mysql
    │   └── test.env
    └── nginx
        ├── Dockerfile
        └── nginx.conf

./flaskapp/app.py

import os
from datetime import datetime

from flask import Flask, jsonify
from flask_sqlalchemy import SQLAlchemy

import config

# 实例化一个web应用
app = Flask(__name__)
app.config.from_object(config)
# 初始化一个数据库连接对象
db = SQLAlchemy(app)


# 测试数据库连接
# 建表
class User(db.Model):
    __tablename__ = 'user'
    uid = db.Column(db.Integer, primary_key=True, autoincrement=True)
    username = db.Column(db.String(50), nullable=False)
    email = db.Column(db.String(50), nullable=False, unique=True)
    update_time = db.Column(db
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值