在Django中创建随机URL

时间:2019-02-05 15:16:18

标签: python django frameworks

我使用 django 2.1 感谢您的帮助:)

2 个答案:

答案 0 :(得分:0)

您可以使用reverse中的django.url进行此操作,并且可以传递随机的argskwargs link

说您的网址就像

urlpatterns = [
    path('articles/', your_article_view),
    path('articles/<slug:slug>/', your_article_slug_view),
]

,并且可以从您的article_view重定向到article_slug_view

reverse('articles', args=['hello'])
'/articles/hello' # url

您可以生成uuid并以此传递它,这将始终确保每次随机生成不同的url。无论您想做什么。

答案 1 :(得分:0)

首先,让我说这看起来像是反模式。

在Django上,您可以设置与某些表达式匹配的url:

path('secret/<slug:passwd>/', views.super_secret, name="secret")

然后,您可以使用密钥重定向到该网址:

if form.is_valid():
    some_key = #some random key
    cache.set(some_key, True, 3)
    return HttpResponseRedirect(reverse('secret', args=(some_key,)))

然后从视图secret的缓存中检查密钥。