tornado 模板加载一段json数据格式显示问题

发布于 2022-09-01 07:33:42 字数 855 浏览 12 评论 0

我在一个tornado应用的handler中从mongodb中读到了一个集合的所有文档,将转换成了json格式,然后我用这些json数据为传入了tornado模板中,显示在了浏览器中。

handler的代码是样的:

class MainHandler(BaseHandler):
    def get(self):
        codes = self.db.code.find()
        result = json.dumps(list(codes), 
            default=json_util.default, 
            sort_keys=True, 
            ensure_ascii=False, 
            indent=4)
        print result
        self.render('index.html', content = result)

浏览器中显示是这样的:

图片描述

就是一个没换行的状态。

在终端打印时,却又是换了行的:

图片描述

记得在django中,可以使用content.linebreaks来换行换行之类的,在tornado中,却没找到这种方法。

烦请帮助一下。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

蓝礼 2022-09-08 07:33:42

很简单啊, 前端显示的时候用

<

pre> 标签即可!

送你一个梦 2022-09-08 07:33:42

应该和json类库的操作有关吧? 你看看json.dump的参数里有没有相关的项。另:为啥你需要换行呢?终端换行还可猜测这个需求,毕竟是方便查看,一般前端里接收到到的都无需换行吧。

带上头具痛哭 2022-09-08 07:33:42

dumps的时候,是不会加缩进之类的。你的dumps指定了indent=4

indent参数针对打印输出时候的format

具体可以看文档

If indent is a non-negative integer (it is None by default), then JSON array elements and object members will be pretty-printed with that indent level. An indent level of 0 will only insert newlines. None is the most compact representation.

还有一个比较好的工具,标准库pprint用来print对象的时候显示更美观:

from pprint import pprint

pprint(your_obj)
叹倦 2022-09-08 07:33:42

如@喵喵大老鼠所说,通过添加<pre>这个元素,就可以实现换行了,效果是样的:

图片描述

我使用的是Bootstrap框架,然后观察了一下css的样式,原来在Bootstrap中设置好了的:

图片描述

里面有两个属性起到了换行的作用,一个是word-break,另一个是word-wrap

这有一篇关于这个属性的用法与区别,一起贴上来。

http://www.cnblogs.com/Kingle/p/3702249.html

再次感谢大家的深情回复

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文