如何将Django 2.2上的临时链接与实际链接结合起来
我遇到了这样的问题。我在网站上创建了临时链接。我无法将临时链接与真实链接(视频链接)结合起来。这怎么可能?这样,用户只能通过临时链接访问视频。如何将Django 2.2上的临时链接与实际链接结合起来,django,Django,我遇到了这样的问题。我在网站上创建了临时链接。我无法将临时链接与真实链接(视频链接)结合起来。这怎么可能?这样,用户只能通过临时链接访问视频。 通过这段代码我从这里过去的一个问题中看到了我的影响力(这不是指控,继续使用代码) 我不完全清楚您在寻找什么,但我假设您正在寻求以某种方式在一个链接上托管一个文件,但只允许通过临时链接访问该链接 以下是我的想法: 型号.py class OneTimeLink(models.Model): one_time_code = models.CharFi
通过这段代码我从这里过去的一个问题中看到了我的影响力(这不是指控,继续使用代码) 我不完全清楚您在寻找什么,但我假设您正在寻求以某种方式在一个链接上托管一个文件,但只允许通过临时链接访问该链接 以下是我的想法: 型号.py
class OneTimeLink(models.Model):
one_time_code = models.CharField(max_length=250)
expiry_time = models.DateTimeField(default=datetime.now()+timedelta(hours=1), blank=True)
video_code = models.CharField(max_length=250, default="XBRSJFLA")
def __str__(self):
return f"{self.expiry_time}"
class VideoLink(models.Model):
url = models.CharField(max_length=250, default="THEVIDEOURL")
pass_code = models.CharField(max_length=250, default="XBRSJFLA")
def randomString(stringLength=20):
"""Generate a random string of fixed length """
letters = string.ascii_lowercase
return ''.join(random.choice(letters) for i in range(stringLength))
def generate_link(request):
the_string = randomString(stringLength=20)
OneTimeLink.objects.create(one_time_code=the_string)
url = '<a href="/polls/one_time_link/{}">{}{}</a>'.format(the_string, request.build_absolute_uri(), the_string)
return HttpResponse(url)
path('one_time_link/<str:access_code>', views.one_time_link, name='one_time_link'),
path('video_link/<str:video_code>', views.video_link, name='video_link'),
我创建了一个单独的视频链接模型,以确保用户以后不能返回视频URL(即,它只工作一次)url
是指向视频的链接,pass\u code
旨在与OneTimeLink
中的video\u code
相匹配
视图.py
class OneTimeLink(models.Model):
one_time_code = models.CharField(max_length=250)
expiry_time = models.DateTimeField(default=datetime.now()+timedelta(hours=1), blank=True)
video_code = models.CharField(max_length=250, default="XBRSJFLA")
def __str__(self):
return f"{self.expiry_time}"
class VideoLink(models.Model):
url = models.CharField(max_length=250, default="THEVIDEOURL")
pass_code = models.CharField(max_length=250, default="XBRSJFLA")
def randomString(stringLength=20):
"""Generate a random string of fixed length """
letters = string.ascii_lowercase
return ''.join(random.choice(letters) for i in range(stringLength))
def generate_link(request):
the_string = randomString(stringLength=20)
OneTimeLink.objects.create(one_time_code=the_string)
url = '<a href="/polls/one_time_link/{}">{}{}</a>'.format(the_string, request.build_absolute_uri(), the_string)
return HttpResponse(url)
path('one_time_link/<str:access_code>', views.one_time_link, name='one_time_link'),
path('video_link/<str:video_code>', views.video_link, name='video_link'),
这是视频链接url生成器。它将video\u code
作为参数,并在VideoLink
中检查匹配的url
。如果发现链接仍然有效,它会更改URL,使其无法再次使用,并提供相关内容
url.py
class OneTimeLink(models.Model):
one_time_code = models.CharField(max_length=250)
expiry_time = models.DateTimeField(default=datetime.now()+timedelta(hours=1), blank=True)
video_code = models.CharField(max_length=250, default="XBRSJFLA")
def __str__(self):
return f"{self.expiry_time}"
class VideoLink(models.Model):
url = models.CharField(max_length=250, default="THEVIDEOURL")
pass_code = models.CharField(max_length=250, default="XBRSJFLA")
def randomString(stringLength=20):
"""Generate a random string of fixed length """
letters = string.ascii_lowercase
return ''.join(random.choice(letters) for i in range(stringLength))
def generate_link(request):
the_string = randomString(stringLength=20)
OneTimeLink.objects.create(one_time_code=the_string)
url = '<a href="/polls/one_time_link/{}">{}{}</a>'.format(the_string, request.build_absolute_uri(), the_string)
return HttpResponse(url)
path('one_time_link/<str:access_code>', views.one_time_link, name='one_time_link'),
path('video_link/<str:video_code>', views.video_link, name='video_link'),
path('one'u time'u link/',views.one'u time'u link,name='one'u time'u link'),
路径('video\u link/',views.video\u link,name='video\u link'),
只要URL是什么,以防你遇到麻烦。只要您进入Django管理并创建第一个
VideoLink
对象,整个过程都应该是一个有效的示例 您可以查看这个pypi包。它可以用来生成上传文件的一次性链接。它可以创建一个站点,其中包含所有上传文件的一次性链接。请计算您所引用的代码的成本。@Caleb Goodman这里是我的代码,可以,但对我不起作用。我想为视频生成一个新链接。这段代码生成新链接,但我不能使用它,因为它会删除原始链接。如果它只是不删除原始链接,它会工作吗?也许我解释错了。我有一个指向视频的链接,我希望它不是可见的,而是隐藏的,像这样的一次性链接是指向一次性视频的链接。如果你经历了它,它就不再起作用了。但这段代码只指向链接。我需要将临时链接与真实链接结合起来。你难道不能在VideoLink中添加第三项作为文件的url,并通过临时生成的url为文件提供服务吗?那不符合你的需要吗?