代码
from flask import Flask, send_file, abort
import os
import random
app = Flask(__name__)
# 指定图片文件夹路径
images_dir = 'images'
# 获取随机图片
@app.route('/api/random-image', methods=['GET'])
def random_image():
try:
images = [f for f in os.listdir(images_dir) if f.endswith(('.jpg', '.jpeg', '.png', '.webp'))]
if not images:
return jsonify({'error': '没有找到图片'}), 404
random_image = random.choice(images)
return send_file(os.path.join(images_dir, random_image))
except Exception as e:
return jsonify({'error': str(e)}), 500
if __name__ == '__main__':
app.run(host='0.0.0.0', port=5000)
体验
地址:
仅用作测试,没做整理、图片不多。
拓展
制作成docker镜像
创建一个app.py
文件
from flask import Flask, send_file, abort
import os
import random
app = Flask(__name__)
# 指定图片文件夹路径
images_dir = 'images'
# 获取随机图片
@app.route('/api/random-image', methods=['GET'])
def random_image():
try:
images = [f for f in os.listdir(images_dir) if f.endswith(('.jpg', '.jpeg', '.png', '.webp'))]
if not images:
return jsonify({'error': '没有找到图片'}), 404
random_image = random.choice(images)
return send_file(os.path.join(images_dir, random_image))
except Exception as e:
return jsonify({'error': str(e)}), 500
if __name__ == '__main__':
app.run(host='0.0.0.0', port=5000)
创建一个rely.txt
文件,添加下面内容
Flask
创建dockerfile
文件
# 使用官方 Python 镜像
FROM python:3.9
# 设置工作目录
WORKDIR /usr/src/app
# 安装依赖
COPY rely.txt ./
RUN pip install --no-cache-dir -r rely.txt
# 复制项目文件
COPY . .
# 暴露端口
EXPOSE 5000
# 启动应用
CMD ["python", "app.py"]
构建镜像
docker build -t random-image-api .
构建容器
docker run -p 5000:5000 -v /images-path:/usr/src/app/images random-image-api
评论区