【发布时间】:2018-08-24 07:09:31
【问题描述】:
我正在尝试在按钮单击时裁剪图像(数千张图像),下面是我的代码!
@background(schedule=5)
def initialize():
allimages = []
number = 0
if not os.path.exists('thumbnails'):
os.makedirs('thumbnails')
path = '/Users/shoaibrafa/Data/*.jpg'
for image in glob.glob(path):
print(image,"=====",number)
im = Image.open(image)
im.thumbnail((512, 512), Image.ANTIALIAS)
im.save("thumbnails/" + os.path.basename(image), "JPEG")
number = number + 1
但我面临两个问题:
单击模板中的按钮时,会出现“WSGIRequest”类型的 Object is not JSON serializable 错误!
如果我在页面加载时直接调用方法 initialize(),则后台任务开始裁剪图像,但是当所有图像都被裁剪时,它会从开始裁剪图像重新开始并永远持续下去。我需要的是裁剪图像并结束后台任务。
下面是我的模板:
{% extends 'layout.html' %}
{% block title %} Login {% endblock %}
{% block content %}
<a class="btn btn-primary" href="{% url 'home:init'%}">Initialize...</a>
{% endblock %}
提前致谢
【问题讨论】:
-
initialize应该返回 http 响应是否可以将 bool 字段添加到Image模型? -
该错误与您在此处发布的任何代码无关。响应按钮单击并将此任务排入队列的请求在哪里?无论如何,您使用的是什么“背景”库?
标签: python django background-task