侧边栏壁纸
博主头像
YOUZI

我依旧在追寻自由的路上

  • 累计撰写 85 篇文章
  • 累计创建 10 个分类
  • 累计创建 27 个标签

目 录CONTENT

文章目录

随机图API

柚子
原创 / 2024-08-10 / 0 评论 / 0 点赞 / 46 阅读 / 0 字
温馨提示:
部分素材来自网络,若不小心影响您的利益,请联系 站长 删除。

代码

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)

体验

地址:

PC随机图

PE随机图

PIXIV随机图

仅用作测试,没做整理、图片不多。

拓展

制作成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

0

评论区