2016-04-12 63 views
0

我在做一個簡單的代碼編輯器。每個用戶都分配了一個長度爲6個字符的ID,需要將其附加到URL中。因此,如果有人訪問localhost:8000/myapp/上的頁面,則URL需要更改爲localhost:8000/myapp/<token>Django - 更改顯示在瀏覽器中的URL

我使用下面的函數生成的令牌密鑰 -

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更改但功能保持不變。

回答

1

如果我是正確的:

寫視圖localhost:8000/myapp/在此視圖生成您的令牌,然後將其重定向到從視圖中的新網址。

def mytoken(request): 
    token = '0-wedfbdhfgm' 

    return redirect(localhost:8000/myapp/token='+token) 
0

這是一個兩步過程。您需要創建

  • 與匹配的網址,以便檢索您的個人憑證
  • 具有匹配名爲url期爲用戶提供結果給用戶

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})) 

... 
相關問題