【问题标题】:Creating random URLs in Django在 Django 中创建随机 URL
【发布时间】:2019-06-29 10:58:23
【问题描述】:
【问题讨论】:
标签:
python
django
frameworks
【解决方案1】:
首先,让我说这看起来像一个反模式。
在 Django 上,您可以设置匹配某个表达式的 url:
path('secret/<slug:passwd>/', views.super_secret, name="secret")
然后,你可以用key重定向到这个url:
if form.is_valid():
some_key = #some random key
cache.set(some_key, True, 3)
return HttpResponseRedirect(reverse('secret', args=(some_key,)))
并在secret 视图中从缓存中检查您的密钥。
【解决方案2】:
您可以使用来自django.url 的reverse 执行此操作,并且可以随机传递args 或kwargs link。
说你的网址是这样的
urlpatterns = [
path('articles/', your_article_view),
path('articles/<slug:slug>/', your_article_slug_view),
]
您可以从您的article_view 重定向到article_slug_view as
reverse('articles', args=['hello'])
'/articles/hello' # url
您可以生成uuid 并通过它传递它,这将始终确保每次随机不同的url。随心所欲。