django - 如何使python2在使用中文的时候,不用加u前缀?
巴扎黑
巴扎黑 2017-04-17 17:55:24
[Python讨论组]

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


其实总结一下 问题很简单

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

巴扎黑
巴扎黑

全部回复(3)
高洛峰

from __future__ import unicode_literals

怪我咯

django模版系统应该也会有跟jinja2差不多的filter功能吧。
就是这样:

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

前台

<p>{{ title|chsdesc }}</p>
天蓬老师

为什么要省掉?记住只要是中文就加u就好了。这是py2的老问题,如果你不愿换py3,就只能默默承受了

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号