redis与djang集成

2024-10-01 07:31:34 发布

您现在位置:Python中文网/ 问答频道 /正文

我是Django的新手。我的任务是设计一个后端,其中将有登录系统(使用django提供的默认用户表)。另外还有两个表,一个是image表,它的imgvalue列包含redis数据库中的键。另一个表(imgacl)是为用户提供访问控制,以便查看所需用户可以访问的特定图像。redis数据库实际上是用key-value对存储图像,而这个key存储在imgvalue列中。以下是我的代码:

在模型.py公司名称:

from django.db import models
from django.contrib.auth.models import User

# Create your models here.
class Image(models.Model):
    imgvalue = models.Charfield(max_length =250)

class Imageacl(models.Model):
    id = models.ForeignKey(Image,on_delete =models.CASCADE)
    userlist= models.Textfield(null=True)

userlist包含可以看到特定图像的用户列表。 一个单独的python程序,用于在Redis数据库中存储50个图像。假设有5个用户,用户1可以查看10个图像,用户2可以查看15个图像。。。在

^{pr2}$

我有两个问题:
1) 如何将redis与django集成&;br/> 2) 我将如何为用户提供访问控制??在


Tags: djangokey用户from图像imageimportredis
1条回答
网友
1楼 · 发布于 2024-10-01 07:31:34

您可以使用redis存储对图像的引用,并存储实际图像:

  1. 在服务器中,如果您允许系统以高效的方式提供静态文件(请记住,如果在同一服务器中共存,则提供文件也会降低应用程序的性能)

  2. 在像S3这样的对象存储服务中,它可以为这些图像提供良好的性能。

在redis中,存储图像的url字符串:

import boto3

s3 = boto3.resource('s3')
buck = s3.Bucket('name')
for object in buck.objects.all():
  # print(object)
  rd.set("key{}".format(x), object.key)

或者,如果您将映像存储在文件系统中:

^{pr2}$

要实现用户访问控制,请看一看this问题,有几个django模块可以获得细粒度的访问控制。在

相关问题 更多 >