python - 将后台任务抓取的图像保存到 ImageField

标签 python django

我有一个程序在后台运行,它将图像输出到我的服务器上的特定文件夹,并且这可能会以不同的时间间隔发生。我需要能够在模板上显示这些图像,因此我想使用 ImageField 将它们保存到数据库中。

我的问题是我如何继续将它们保存到数据库中?我可以在后台任务上沿着 os.listdir(dir) 执行某些操作并将其直接保存到数据库吗?还是需要图像的完整路径?

我已经为此创建了模型

class Usertasks(models.Model):
    TaskID = models.CharField(max_length=55)
    user = models.ForeignKey(User, unique=False, on_delete=models.CASCADE)
    TaskStatus = models.CharField(max_length=15, default="missing")
class TaskImages(models.Model):
    UserTasks = models.ForeignKey(Usertasks, related_name='images', on_delete=models.CASCADE)
    image = models.ImageField()

最佳答案

是的,您可以迭代目录并将每个文件保存到模型中:

from django.core.files import File

with open('path_to_file', 'rb') as f: 
    data = File(f)
    TaskImages.image.save('filename', data, True)

也许更棘手的是你什么时候调用这个保存,以及你打算多久调用一次?

关于python - 将后台任务抓取的图像保存到 ImageField,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58626671/

相关文章:

python - 如何使用 python pandas 从 csv 文件中获取集合的交集

python - 我应该如何用 Python 编写朴素贝叶斯分类器?

python - 为什么导入的文件会产生一个重复的结果?

Python/Django : Creating a simpler list from values_list()

sql - 来自 syncdb 的 Django 所有 SQL

python - 为什么可以调用父类(super class)没有的方法

python - 使用 "import <module>"或 "from <module> import <func>"效率更高吗?

python - DRF更新一行

python - Django模型: sum in def

python - 我可以从 Django 模板访问字典中的特定键值吗?