V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
ayang23
V2EX  ›  Python

吐槽:Django EmailField 的验证尽然支持 abc@domain。com 这种域名,注意是句号啊,有木有?看了下 django 的源代码,发现确实如此。

  •  
  •   ayang23 ·
    ayang23 · 2013-03-25 11:02:10 +08:00 · 3726 次点击
    这是一个创建于 4258 天前的主题,其中的信息可能已经有所发展或是发生改变。
    django.core.validators.py line 39:

    if not self.regex.search(smart_unicode(value)):
    raise ValidationError(self.message, code=self.code)

    句号直接验证通过了,我晕。
    5 条回复    1970-01-01 08:00:00 +08:00
    workaholic
        1
    workaholic  
       2013-03-25 16:43:53 +08:00
    bug
    c742435
        2
    c742435  
       2013-03-25 16:59:51 +08:00
    具体不懂,但是任何一个现代桌面浏览器都支持句号代替dot
    xiaket
        3
    xiaket  
       2013-03-25 17:49:34 +08:00
    要吐槽也贴真正对应的那部分嘛. 自己看看django.core.validators.py line 119行附近对idna的处理. 下面是我的测试代码, 应该能说明问题:

    >>> s = u"gmail。com"
    >>> s.encode("idna").decode("ascii")
    u'gmail.com'
    BOYPT
        4
    BOYPT  
       2013-03-25 19:34:04 +08:00
    #feature
    swulling
        5
    swulling  
       2013-03-25 20:20:21 +08:00
    这是feature不是bug
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1175 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 18:38 · PVG 02:38 · LAX 10:38 · JFK 13:38
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.