我想在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])
答案 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 %}