python怎么升级django_线上Django项目python2到3升级日记
这两天干了一个几斤疯狂的事情,花不到一个工作日的时间把一个线上Django项目语言版本从python2升级到Python3
1、字典的一个语法变化
Python2.7:
if dict1.haskey(key1):
Python3:
if key1 indict1.keys():#or
if key1 in dict1 :
2、u"strcontent"这种格式在python3里面支持,但是定义正则的ur"regexcontent"已经不支持,需要改成r"regexcontent"
3、urllib2不再支持,代替方式:
importurllib.request
resp=urllib.request.urlopen('http://www.baidu.com')
html=resp.read()print(html)
4、HTMLParser包路径发生变化:
from html.parser import HTMLParser
5、HTMLParser的继承定制方式发生变化,初始化函数必须加上超类的初始化语句,否则会error:
object has no attribute 'convert_charrefs'
def __init__(self):
super().__init__()
self.reset()
self.images= []
6、StringIO新的import方式:
try:from StringIO importStringIOexceptImportError:from io import StringIO
7、Python3的异常类体系发生变化,主基类变为Exception,以前的StandardError下线,所以出错:NameError: name 'StandardError' is not defined
8、Python3里面没有long类型,所有都是int,还有以前的那种数字后面加L的long类型定义方式L得去掉,否则报错
9、urlparse包路径改为urllib.parse,用法基本没变
10、整除法的计算机制改变了,非整除会变成小数,不会直接floor了。
11、Ubuntu下uwsgi执行环境由python2升级为python3的主要操作是apt卸载uwsgi-plugin-python,装上uwsgi-plugin-python3,当然了,还有python3版本的切换和一堆依赖的安装。
12、md5的update参数值需要encode以下:
md5.update(str1.encode('utf-8'))
13、属性和setter方法里面对实例值的定义名称不能和属性名称一样了,具体看下例中的下划线处理,如果不加那个处理,会导致stack overflow:
classPerson(object):def __init__(self, name, birthday):
self.name=name
self.birthday=birthday
@propertydefbirthday(self):returnself._birthday
@birthday.setterdefbirthday(self, birthday):
self._birthday=str_to_date(birthday)
@propertydefage(self):return datetime.date.today() -self.birthdaydef __str__(self):return '%s,%s(%s)'%(self.name,self.birthday, self.age)
person= Person('Xiao Ming','1980-10-1')
14、urllib.basejoin已经废除,用urllib.parse.urljoin代替
15、xrang全部统一成rang了
16、最后强调一下,所有的urllib.function的调用方式都已经废止,需要重新import相关新模块。
总结:修改点主要都在第三方不再维护的两个遗留库里面,特别廖雪峰的一个小lib,里面设计套路很深,用的都是传统的老api,最后实在移植成本太高,果断放弃,从pypi找了个同类的取代之。
python怎么升级django_线上Django项目python2到3升级日记相关推荐
- 我们有一个线上的项目,刚启动完就占用了超过 1.5G,一次大量 JVM Native 内存泄露的排查分析(64M 问题)
我们有一个线上的项目,刚启动完就占用了使用 top 命令查看 RES 占用了超过 1.5G,这明显不合理,于是进行了一些分析找到了根本的原因,下面是完整的分析过程,希望对你有所帮助. 会涉及到下面这些 ...
- python培训班 费用-参加线上python培训班要多少钱?
关键词:线上python培训机构,线上pyton培训机构多少钱,线上python培训班 参加Python培训机构要花多少钱?具体还是看培训机构所在的城市.选择机构的规模.教学方法.具体的教学内容和培训 ...
- flex布局演示(可线上运行项目)
flex布局演示(可线上运行项目) 代码: <!DOCTYPE html> <html lang="en"><head><meta cha ...
- python 在线培训费用-参加线上python培训班要多少钱?
关键词:线上python培训机构,线上pyton培训机构多少钱,线上python培训班 参加Python培训机构要花多少钱?具体还是看培训机构所在的城市.选择机构的规模.教学方法.具体的教学内容和培训 ...
- 「newbee-mall新蜂商城开源啦」SpringBoot+MyBatis开发JavaWeb线上商城项目
我的想法很简单,就是做一个大家都能运行的商城项目,而不是缺胳膊少腿的项目,不求有多么完善,也不求有多少技术栈,我目前的想法就是大家都可以运行它.使用它,至于完善它嘛,给我点时间哈. 本项目开源地址: ...
- J2EE远程调试,远程debug你的线上Springboot项目
2019独角兽企业重金招聘Python工程师标准>>> 开发环境中代码出错了,可以利用IDE的debug功能来进行调试.那线上环境出错呢? 一.假设我们的项目是部署在tomcat中, ...
- 开源的线上商城项目收集
1.创创猫java单商户商城-品牌自营如三只松鼠 创创猫B2C单商户电商系统,是一款完善且经过线上验证的Java电商系统. 商城前端使用uni-app开发, 可打包部署到微信小程序, APP, H5, ...
- 服务器上django项目配置负载均衡
服务器正常需要的nginx和uwsgi的配置就不多说了,前面讲过了,直接开始主题. 负载均衡,说白了,所有请求发给A服务器,然后它转发到其它服务器中实现负载均衡 Nginx的反向代理 反向代理指以代理 ...
- 大年初三,字节跳动“线上免费春节档”电影再升级,13部影片登场
2020年字节跳动,打造"线上免费春节档".继大年初一推出<囧妈>后,大年初三再度推送13部影片,奉献一桌丰盛春节电影娱乐大餐. 影片类型 影片涵盖了喜剧.奇幻.悬疑. ...
最新文章
- 从TXT文本文档向Sql Server中批量导入数据
- php redis linsert,LINSERT命令_视频讲解_用法示例-redis编程词典-php中文网
- 在navicat中查看所有表的注释
- 【Linux】一步一步学Linux——dirs命令(了解)(24)
- Boost锁~临界区保护和临界资源共享
- 460. LFU 缓存
- js父元素获取子元素img_css,前端_父标签div中包含一个子元素img标签,子元素div标签,为什么img要加上浮动,子元素div才会处于正常位置?,css,前端 - phpStudy...
- 描述C,C++编译和链接过程
- mysql语句优化 explai_mysql使用explain优化sql语句
- 潜移默化学会WPF(安全篇二)--C#对称加密算法
- HDU 4968(杭电多校#9 1009题)Improving the GPA (瞎搞)
- vi下的查找替换命令
- memcached 可视化客户端工具TreeNMS
- java jxta_JXTA——JAVA P2P网络编程技术(入门篇) | 学步园
- 歌词服务器文件名,lrc是什么格式,MP3的LRC格式歌词同步方法
- 基于DLNA实现投屏的思路梳理
- 【无标题】2022年“研究生科研素养提升”系列公益讲座在线测评本次测验答题时间为8月15日-26日,60分及格,每人有一次补考机会。
- 证书有效性验证、根证书
- 相关系数与决定系数的关系
- 利用photoshop切图
热门文章
- Sping和springBoot框架技术栈
- IIS和Tomcat共用80端口的解决方案
- pythonUI---ttk.Treeview使用心得(内含表格形式加垂直水平滚轮方法)
- 数据结构c语言版实验报告2,数据结构(C语言版) 实验报告 (2)
- soyun是php么,40个迹象表明你还是PHP菜鸟
- python中narc是什么意思_python中@是什么意思
- acm java题_【转】ACM中java的使用
- 在java中转义符 n代表什么_在Java中,表示换行符的转义字符是()。 A.\nB.\fC.n D.\ddd...
- 2020年计算机二级access考试大纲,2020年全国计算机二级ACCESS考试分析与小结(7页)-原创力文档...
- 2017java面试_2017 Java面试大全(一)