2014-12-02 110 views
0

我創建了一個哈希,我要在以後使用的確認電子郵件的邏輯是這樣的:如何在Django 1.7中打印散列並將其存儲在數據庫中?

import hashlib, datetime, random 

def hash(request): 
    username = 'johndoe' #inserted line to simplify the code 
    random_str = str(random.random()).encode('utf-8') 
    salt = hashlib.sha1(random_str).hexdigest()[:5] 
    salted = (salt + username).encode('utf-8') 
    activation_key = hashlib.sha1(salted).hexdigest() 
    return render_to_response('ftest/display.html', activation_key) 

我的第一個問題是我怎麼在HTML打印,這樣我可以看到它時,HTML渲染?

這似乎並不在我的display.html工作:

<p> This is the activation key {{activation_key}} </p> 

接下來,我怎麼會在數據庫中定義這個哈希領域?它只是像一個charfield:

hash = models.CharField(max_length=200) 
+0

我不認爲在模板上顯示哈希值是好的,因爲您將使用它來進行電子郵件確認。我認爲你應該使用會話來處理這種情況。而且我認爲CharField可以很好地將哈希值存儲爲模型。 – 2014-12-02 08:42:12

+1

謝謝你的評論。我不打算顯示哈希值。我只是好奇爲什麼散列值沒有被打印出來。打印散列值是爲了我自己的測試目的。 – 2014-12-02 08:51:10

+0

也可以在[django-uuidfield](https://github.com/dcramer/django-uuidfield)中查看這些用途。 – Peter 2014-12-02 18:39:02

回答

3

希望選擇render_to_response的字典:

return render_to_response('ftest/display.html', {'activation_key': activation_key}) 

一個CharField是正確的道路要走。

+0

哇,我需要睡覺,我犯了太多容易的錯誤。感謝您的澄清! – 2014-12-02 08:40:26

相關問題