“祥”龙第一掌:

from __future__ import unicode_literals
from django.utils.encoding import python_2_unicode_compatible 
@python_2_unicode_compatible

远离 b'str' u'str'真是烦了 unicode_literals简单方便

“祥”龙第二掌: 

django.utils.encoding.smart_bytes
django.utils.encoding.force_text
django.utils.encoding.smart_text

也不知道创造这些神功的大神砸咋么niuB

“祥”龙第三掌:  

__unicode__ ==>NO==Use==>__str__

就是实体类不用__unicode__ 用__str__

“祥”龙第四掌:

from django.utils.six import iteritems

oh why?下面多清晰 因为3.4 的dict没有 很多方法了撒

Python 3.4
>>> a={}
>>> dir(a)
[... 'clear', 'copy', 'fromkeys', 'get', 'items', 'keys', 'pop', 'popitem', 'setdefault', 'update', 'values'] Python 2.7.10 (default, Jul 14 2015, 19:46:27)
>>> a={}
>>> dir(a)
[...'clear', 'copy', 'fromkeys', 'get', 'has_key', 'items', 'iteritems', 'iterkeys', 'itervalues', 'keys', 'pop', 'popitem', 'setdefault', 'update', 'values', 'viewitems', 'viewkeys', 'viewvalues']

“祥”龙第五掌:

在捕获异常的时候使用as

try:
article = NewsArticle.objects.get(slug="hello-world")
except NewsArticle.DoesNotExist as exc:
pass
except NewsArticle.MultipleObjectsReturned as exc:
pass”

“祥”龙第六掌:

检查变量的类型使用

from django.utils import six
isinstance(val, six.string_types) # previously basestring
isinstance(val, six.text_type) # previously unicode
isinstance(val, bytes) # previously str
isinstance(val, six.integer_types) # previously (int, long)

  

“祥”龙第七掌:

使用range替代xrange

from django.utils.six.moves import range
for i in range(1, 11):
print(i)”

“祥”龙第八掌: 
弄清楚python的版本 

from django.utils import six
if six.PY2:
print("Python2")
if six.PY3:
print("Python3")

  

django在pyhton2.7 和 python3.* 之间代码和睦相处的方法的更多相关文章

  1. 如何把Python2的代码转换为Python3的代码

    如何把Python2的代码转换为Python3的代码 注: 如果对于python2和python3不熟悉的,可以参考: [整理]总结Python2(Python 2.x版本)和Python3(Pyth ...

  2. Django Admin 实现三级联动的示例代码(省市区)===>小白级

    一  使用环境 开发系统: windows IDE: pycharm 数据库: msyql,navicat 编程语言: python3.7  (Windows x86-64 executable in ...

  3. Python人工智能之图片识别,Python3一行代码实现图片文字识别

    1.Python人工智能之图片识别,Python3一行代码实现图片文字识别 2.tesseract-ocr安装包和中文语言包 注意:

  4. python2与python3之间的主要区别

    python2与python3之间的主要区别 print py2:print语句,语句就意味着可以直接跟要打印的东西,如果后面接的是一个元组对象,直接打印 py3:print函数,函数就以为这必须要加 ...

  5. 使用github作为maven仓库存放发布自己的jar包依赖 实现多个项目公共部分代码的集中,避免团队中多个项目之间代码的复制粘贴

    使用github作为maven仓库存放发布自己的jar包依赖 实现多个项目公共部分代码的集中,避免团队中多个项目之间代码的复制粘贴. 1.首先在本地maven位置的配置文件setting.xml(没有 ...

  6. java代码--------编写0懂啊PI之间求随机数的方法

    总结:其实每次运行,显示出来的结果个数是随机的. package com.mmm; //编写0到PI之间求随机数的方法 public class MEm { public static void ma ...

  7. C# Winform窗口之间传值的多种方法浅析(转)

    摘要http://www.jb51.net/article/63837.htm 这篇文章主要介绍了C# Winform窗口之间传值的多种方法浅析,本文起讲解了通过构造器传值.通过属性传递.通过事件携带 ...

  8. DevExpress 控件汉化代码和使用方法

    DevExpress 第三方控件汉化的全部代码和使用方法   DevExpress.XtraEditors.Controls  此控件包中包含的控件最多,包括文本框,下拉列表,按钮,等等        ...

  9. django框架使用mysql报错,及两种解决方法

    1.django框架 settings.py文件中部分代码: DATABASES = { # 'default': { # 'ENGINE': 'django.db.backends.sqlite3' ...

随机推荐

  1. iOS高仿app源码:纯代码打造高仿优质《内涵段子》

    iOS高仿app源码:纯代码打造高仿优质<内涵段子>收藏下来 字数1950 阅读4999 评论173 喜欢133 Github 地址 https://github.com/Charlesy ...

  2. 2016 ACM/ICPC Asia Regional Qingdao Online HDU5879

    链接:http://acm.hdu.edu.cn/showproblem.php?pid=5879 解法:我们知道到某个极限之后结果相同,所以找到那个极限,其他保存之后输出就好了 #include&l ...

  3. 【Java】常见的Set类型,HashSet、TreeSet、LinkedHashSet

    HashSet,锋芒毕露,我们最常用到.其他两个,我们较少用到,今天,我们看看他们的区别. import java.util.HashSet; import java.util.Set; public ...

  4. mysqldump命令

    mysqldump命令 mysqldump命令是mysql数据库中备份工具,用于将MySQL服务器中的数据库以标准的sql语言的方式导出,并保存到文件中. 语法 mysqldump(选项) 选项 -- ...

  5. #utf-8与gbk转换 #bytes 和str 的转换

    #!/user/bin/env python # -*- coding:utf-8 -*- temp = "连接" temp_unicode = temp.decode('utf- ...

  6. outlook经常无故崩溃解决办法

    问题描述: Outlook 最近有点怪,有时无法启动有时又突然崩溃.原以为是远程访问服务出了问题,但即使在本地操作,Outlook 仍然极不稳定.怎么回事? 原因:这种现象,很可能是由 Office ...

  7. qt 3 获取文件路径中的一部分

    QList<QString> qlist = path.split(QRegExp("[\\\\/]")); QString FileName = qlist.at(q ...

  8. Dancing Links

    Dancing Links用来解决如下精确匹配的问题: 选择若干行使得每一列恰好有一个1.Dancing Links通过对非零元素建立双向十字循环链表.上面的例子建立的链表如下所示: 计算的时候使用搜 ...

  9. BZOJ 3241: [Noi2013]书法家

    题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=3241 题意: 思路:把每个字母分成三部分,两个字母之间还有空的列,所以我一共设了11个状态 ...

  10. Java EE 锚、表格用法

    <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding= ...