Django:将字符串字节字符串恢复为原始

时间:2018-09-11 23:56:11

标签: django bytestring

我使用新的users模型和email作为登录名来创建一些应用程序。我可以通过用户电子邮件进行简单确认。

计划是:

  1. 用户输入他或她的数据; email当然。
  2. 接下来他收到一些代码(格式为urlsafe_base64_encode(force_bytes(users_email)))。
  3. 此代码计划手动输入或在确认字段中粘贴粘贴。使用户帐户处于活动状态。

在python控制台中,此链很好用。

问题是:当用户手动输入或从电子邮件中复制粘贴代码时,它将引发

DjangoUnicodeDecodeError: 'utf-8' codec can't decode byte... 
  You passed in b'm\xb5\xa5\xad\xb...

一些分析表明,在后函数中,代码以字符串"b'bla-bla-bla"的形式到达。但是不是字节字符串b'bla-bla-bla',这对于通过force_text(urlsafe_base64_decode(the_code))获取原始字符串是很好的。

有任何想法将带有b起始符号的字符串对象转换为更舒适的字节字符串对象吗?还是有另一种方法可以基于用户名(user-email)进行一些秘密编码/解码?

1 个答案:

答案 0 :(得分:0)

PS: 我只是想-拆分接收字符串,并制作新的字节字符串,如$ rm -rf cach1 $ make -f Makefile mkdir -p cach1 $ ls -l cach1/ 。 还有其他更精致的方法或pythonic方法吗?