首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

str

“ 本文阅读时间为4分钟”

在学习Django的时候,会遇到一个问题,就是关于__str____unicode__方法的使用,运用该方法的作用是美化打印出来的结果,使人类更方便查看。

在上面的例子中,如果没有使用__str__方法则会输出格式,有了__str__方法后,打印时会按照__str__定义的格式来打印,打印结果为Name:xiaoming

在Django的官方文档中有这么一段话

大意为__str__比__unicode__的使用更为安全,而且在python3中,只能使用__str__方法,如果是python2则使用__unicode__

具体到Django中,在 Models中定义这个(python3为)方法与否,最直接的感受就是你访问admin所看到的内容是否友好。

上面的models来自django官方教程,在上面的models中,我定义了一个名为Question的models,此时,访问django的后台admin,看到的内容是这样的

把__str__方法都注释掉,并重新启动服务器,就会发现有明显的变化

你定义的问题,看到的内容全部变为了,这样的表示方式,对人来说,是相当的不友好的。

总结

总的来说,Django会自动识别__str__和__unicode__方法,并会以自定义的显示方法在页面中进行显示

需要注意的一点是,在python3中只能使用__str__,如果使用了__unicode__方法是不会报任何错误的,而且在页面中也不会有任何效果

具体可以参考链接:

http://pyzh.readthedocs.io/en/latest/python-magic-methods-guide.html

https://docs.python.org/3.3/howto/pyporting.html#str-unicode

鱼卷少年

我来倾听你的烦恼

你来书写我的幽默

愿你筑梦远行

归来仍是少年

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180605G0GNKK00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券