search

Home  >  Q&A  >  body text

django - 如何使python2在使用中文的时候,不用加u前缀?

这个需求是这样来的,最近在用django做一个项目,考虑到移动性以及以后给团队的人用,所以我打算把一部分模板变量写成中文,类似的效果是这样的{{ 文章内容 }} 这样以后自己在引用的时候也比较方便.
但是在python2.7,我使用上下渲染是这样的.
context[u'网站标题'] ,前面必须要加u,django才能识别.这样显得特别麻烦,而且变量一多也会漏掉,有没有比较的方法,可以就直接使用中文就可以? 不要劝我换python3,有些模块python3还不支持!


其实总结一下 问题很简单

u'中文' 如何能 这样中文,直接调用?需要什么包或什么库可以省掉这个
不知道我的描述清楚吗?

巴扎黑巴扎黑2890 days ago238

reply all(3)I'll reply

  • 高洛峰

    高洛峰2017-04-17 17:57:24

    from __future__ import unicode_literals

    reply
    0
  • 怪我咯

    怪我咯2017-04-17 17:57:24

    Django template system should also have a filter function similar to jinja2.
    That’s it:

    @myapp.app_template_filter(name='chsdesc')
    def chs_description(eng_str):
        desc = {
            'title': '标题',
            'body': '正文',
            }
        return desc.get(eng_str, '未知').decode('utf-8')
    

    Front desk

    <p>{{ title|chsdesc }}</p>

    reply
    0
  • 天蓬老师

    天蓬老师2017-04-17 17:57:24

    Why should we omit it? Just remember to add u as long as it’s in Chinese. This is an old problem with py2. If you don’t want to change to py3, you can only suffer it silently

    reply
    0
  • Cancelreply