我正在制作一个简单的代码编辑器。为每个用户分配一个六字符长的id,需要将其附加到URL。因此,如果有人访问localhost:8000/myapp/
上的网页,则网址需要更改为localhost:8000/myapp/<token>
。
我正在使用以下函数生成该令牌密钥 -
def id_generator(self,size=6, chars=string.ascii_lowercase + string.digits):
return ''.join(random.choice(chars) for _ in range(size))
我创建了一个中间件,但我很困惑如何继续进行。我应该使用什么 - process_request()或process_response()?
如何显示我定义其中任何一个,以便URL更改但功能保持不变。
答案 0 :(得分:1)
如果我是对的:
为localhost:8000/myapp/
撰写视图在此视图中,生成您的令牌,然后将其重定向到视图中的新网址。
def mytoken(request):
token = '0-wedfbdhfgm'
return redirect(localhost:8000/myapp/token='+token)
答案 1 :(得分:0)
这是一个两步过程。你需要创建
<强> urls.py 强>
...
url(r'^myapp/(?P<token>\w+)/$', views.your_user_result_view, name='your-user-result-view'),
url(r'^myapp/$', views.your_token_appender_view, name='your-token-appender-view'),
...
<强> views.py 强>
...
def your_user_result_view(request):
...
def your_token_appender_view(request):
token = ...
redirect(reverse('your-user-result-view',kwargs={'token':token}))
...