前提条件
- 服务器有外网访问权限
- docker engine已安装
Flask
计算日期差
from flask import Flask, request, jsonify
import datetime
app = Flask(__name__)
@app.route('/calculate_days', methods=['GET'])
def calculate_days():
# 获取请求中的originalDate参数,如果没有提供则使用默认值
original_date_str = request.args.get('originalDate', '2021-11-13')
try:
# 尝试将字符串转换为日期对象
original_date = datetime.datetime.strptime(original_date_str, '%Y-%m-%d').date()
except ValueError:
# 如果日期格式不正确,返回错误消息
return jsonify({"error": "Invalid date format. Please use YYYY-MM-DD format."}), 400
# 获取当前日期
current_date = datetime.date.today()
# 计算偏移天数
offset = (current_date - original_date).days + 1
# 创建结果字符串
result = f"Day {offset} {current_date.strftime('%y.%m.%d')}"
# 返回包含结果的JSON响应
return jsonify({'title': result})
if __name__ == '__main__':
app.run(host='0.0.0.0', port=5000)
Dockerfile
# 使用官方 Python 运行时作为基础镜像
FROM python:3.9-slim
# 设置工作目录在容器内
WORKDIR /app
# 将当前目录下的文件复制到容器中的工作目录
ADD app.py /app
# 安装 Flask 库
RUN pip install flask
# 设置时区
RUN ln -snf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo Asia/Shanghai > /etc/timezone
# 指定容器内部的端口号,应用将在这个端口上运行
EXPOSE 5000
# 设置环境变量,确保 Flask 在生产模式下运行,而不是在开发模式下
ENV TZ="Asia/Shanghai"
# 运行 Flask 应用
CMD ["flask", "run", "--host=0.0.0.0"]
Docker
sudo docker build -t dategap:1.1 .
sudo docker run -d -p 5000:5000 --name dateGapCalc dategap:1.1
测试
在服务器上运行:
curl http://0.0.0.0:5000/calculate_days
注意事项
5000端口开启外网访问
网友评论