app.py
from flask import Flask
from flask import jsonify
import mysql.connector
app = Flask(__name__)
# MySQL 连接配置
db_config = {
'host': '127.0.0.1',
'user': 'root',
'password': '123456',
'database': 'msgb'
}
# 创建数据库连接
conn = mysql.connector.connect(**db_config)
cursor = conn.cursor()
@app.route('/')
def index():
# 查询数据库
cursor.execute('SELECT * FROM message_board')
rows = cursor.fetchall()
# 将结果转换为 JSON 格式并返回
result = [{'id': row[0], 'msg': row[1]} for row in rows]
return jsonify(result)
if __name__ == '__main__':
app.run(debug=True)
requirements.txt
blinker==1.7.0
click==8.1.7
colorama==0.4.6
Flask==3.0.2
itsdangerous==2.1.2
Jinja2==3.1.3
MarkupSafe==2.1.5
mysql-connector-python==8.3.0
Werkzeug==3.0.1
dockerfile
# 使用 Python 官方的 Python3 镜像作为基础镜像
FROM python:3.11
# 设置工作目录
WORKDIR /app
# 将当前目录下的所有文件复制到工作目录
COPY . .
# 安装 Flask 及其依赖,使用清华大学的 PyPI 镜像源加速下载
RUN pip install --no-cache-dir -i https://pypi.tuna.tsinghua.edu.cn/simple -r requirements.txt
# 安装 MySQL 和 Redis 客户端
RUN apt-get update && apt-get install -y default-mysql-client redis-tools
# 暴露 Flask 默认端口
EXPOSE 5001
# 定义环境变量
ENV FLASK_APP=app.py
# 设置 Flask 在容器启动(用app.py不行,容器起不起来)
CMD ["flask", "run", "--host=0.0.0.0"]
dockerfile打包
docker build -t test1:v1 .
docker run -p 5001:5000 --name test1 test1:v1