2014-12-02 74 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

相关问题