关于django中InMemoryUploadedFile图片对象的使用方法

7 篇文章 0 订阅

InMemoryUploadedFile是用户上传到django后端的图片对象,对它的使用方法如下。

import base64
from django.db import models
from django.core.cache import cache
from django.http import JsonResponse
from django.core.files.uploadedfile import InMemoryUploadedFile


class Images(models.Model):
    image = models.ImageField('图片', upload_to='images', default='')


def receive_image(request):
    image = request.POST['image']
    image_data = [image.file, image.field_name, image.name, image.content_type,
                  image.size, image.charset, image.content_type_extra]
    cache_key = 'image_key'
    cache.set(cache_key, image_data, 60)

    cache_data = cache.get(cache_key)
    image = InMemoryUploadedFile(*cache_data)
    Images(image=image).save()


def send_image_url(request):
    image = Images.objects.first()
    return JsonResponse({'code': '0', 'image_url': image.name})
    # 在JS中使用数据: $('img').attr('src', result.image_url);


def send_image_data(request):
    image = Images.objects.first()
    return JsonResponse({'code': '0', 'image_data': 'data:image/jpeg;base64,%s' % base64.b64encode(image.file.read()).decode()})
    # 在JS中使用数据: $('img').attr('src', result.image_data);

 

  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Django 使用 Celery 的步骤如下: 1. 安装 Celery:可以使用 pip install celery 命令进行安装。 2. 配置 Celery:在 Django 项目的 settings.py 文件添加以下内容: ```python CELERY_BROKER_URL = 'redis://localhost:6379/0' CELERY_RESULT_BACKEND = 'redis://localhost:6379/0' ``` 其,`CELERY_BROKER_URL` 表示消息代理的地址,这里使用 Redis;`CELERY_RESULT_BACKEND` 表示 Celery 的结果存储方式,也使用了 Redis。 3. 创建 Celery 应用:在 Django 项目的根目录下创建一个 celery.py 文件,添加以下内容: ```python import os from celery import Celery os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'your_project.settings') app = Celery('your_project') app.config_from_object('django.conf:settings', namespace='CELERY') app.autodiscover_tasks() ``` 其,`your_project` 表示你的 Django 项目名称。 4. 定义任务:在 Django 项目的某个 app 创建一个 tasks.py 文件,并添加以下内容: ```python from celery import shared_task @shared_task def add(x, y): return x + y ``` 这里定义了一个名为 `add` 的任务,使用了 `shared_task` 装饰器。 5. 启动 Celery:在终端输入命令 `celery -A your_project worker -l info` 启动 Celery。 6. 调用任务:在 Django 项目需要调用 Celery 任务的地方,可以使用以下代码: ```python from your_app.tasks import add result = add.delay(4, 4) print(result.get()) ``` 其,`add.delay(4, 4)` 表示异步调用 `add` 任务,返回一个结果对象;`result.get()` 表示获取 `add` 任务执行的结果。 注意:需要在 Django 项目启动时加载 Celery 应用,可以在项目的 `__init__.py` 文件添加以下代码: ```python from .celery import app as celery_app __all__ = ('celery_app',) ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值