-2

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

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

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,这样我就可以在循环的帮助下将它存储在数据库中,但它只存储第一个字符。

所以请告诉我我该怎么做。

谢谢

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

编辑:

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

1 回答 1

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 %}
于 2013-02-08T09:47:38.737 回答