从django中的电子邮件中替换一些特殊字符

时间:2013-02-08 09:40:07

标签: python django special-characters

我想在django中替换电子邮件中的特殊字符。我有谷歌这个问题,发现堆栈问题非常有帮助question

但是这有一些问题。如果我试过这个

a='testemail@email.com'
    replace=['@','.']
    for i in replace:
        a=a.replace(i,'_')

或者

u_name=re.sub(r'[^a-zA-Z0-9]', '_', str(email))

并在模板中

{% for i in u_name%}
{{i}}<br>
{% endfor %}

它会返回

t
e
s
t
e
m
a
i
l
_
e
m
a
i
l
_
c
o
m

但我希望这样testemail_email_com,以便我可以在循环的帮助下将其存储在DB中,但它只存储第一个字符。

所以请告诉我如何做到这一点。

由于

我正在从其他数据库迁移一些数据,并希望将其存储到django db中。假设我有1个用户的数据,这些用户的电子邮件存储到以下数组中。现在我想从这些电子邮件中替换特殊字符,以便我可以将它们用作用户名。

已编辑:

email.append(row[i][1]) 

1 个答案:

答案 0 :(得分:1)

如果u_name是一个字符串,您可以使用它:

{{u_name}}<br>

你正在遍历字符串的每个字符 - 即

>>> for i in "mystring":
    print i


m
y
s
t
r
i
n
g

根据你的编辑:

如果emails是数组的名称,则需要替换每个元素,然后将其打印出来:

>>> emails = ["me@apple.com", "you@test.com"]
>>> emails = [re.sub(r'[^a-zA-Z0-9]', '_', x) for x in emails]
>>> print emails
['me_apple_com', 'you_test_com']

然后使用模板:

{% for email in emails%}
{{email}}<br>
{% endfor %}