【问题标题】:Simple question about characters in django urls关于 django url 中字符的简单问题
【发布时间】:2011-09-04 12:18:46
【问题描述】:

在 django 文档中,他们写道,在 urls 中只能使用 ASCII 字符。由于 IDN 域中的字符,这对我来说似乎很奇怪。例如,如果我有 IDN 域并且我想在 url 中不仅有 ASCII 字符,那么默认情况下真的不可能以简单的方式做到这一点吗?

【问题讨论】:

    标签: django unicode ascii idn


    【解决方案1】:

    是的,但那又怎样。 Python 原生支持Punycode

    >>> 'xn--' + u'たとえば'.encode('punycode') + '.com'
    'xn--r8j2b1a7a.com'
    

    【讨论】:

    • 如果不可能怎么办?我不是专家,但我认为如果答案是正确的,如果 django 的创建者和开发人员想要继续将 django 视为用户心目中的友好框架,他们还有一些工作要做。
    • 如果您能确定 Django 的具体问题,那么我相信开发人员最有兴趣了解这些问题。
    • 我现在看不到问题,只有可能性。
    【解决方案2】:

    一个简单的解决方法是让 Django 将 URL 匹配为 '.'正则表达式原始字符串,因为它不理解 '\w' 表示您的 UTF-8 等字符集。

    因此,在 urls.py 中,您可以编写 'foo/bar/.+' 而不是 'foo/bar/\w+' ,因为它原本是英语使用者独有的。我只是在开玩笑。

    祝你好运。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-10-11
      • 2011-09-21
      • 1970-01-01
      • 1970-01-01
      • 2023-03-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多