django 2.0更新的10条注意事项总结


Posted in Python onJanuary 05, 2018

前言

备受期待的django 2.0已经发布了,最大的一个变化就是不再支持python2.x版本了,这也为我们还在保守使用的2.x的同学们敲响了警钟,赶紧学习python3.x吧,虽然大同小异,但是python3.x还是提供了很多更高级的用法。

Python兼容性

Django 2.0支持Python3.4、3.5和3.6。Django官方强烈推荐每个系列的最新版本。

最重要的是Django 2.0不再支持Python2!

Django 1.11.x是支持Python2.7的最后版本。

django2.0 弃用的特性

下面这些是我在升级到Django 2.0后遇到的最常见的一些错误:

1. url

from django.core.urlresolvers import reverse

变成了

from django.urls import reverse

2. MIDDLEWARE

settings.py文件,MIDDLEWARE_CLASSES更改成了MIDDLEWARE,这个一定要注意。

3. django.shortcuts.render()

django.shortcuts.render_to_response()方法已经被弃用了,现在使用django.shortcuts.render()方法。

4. User.is_authenticated 和User.is_anonymous

之前的User.is_authenticated()User.is_anonymous()方法更改成了属性:User.is_authenticatedUser.is_anonymous

5. SessionAuthenticationMiddleware

删除了SessionAuthenticationMiddleware类,不再需要该中间件,在Django 1.10+中已经默认开启了。

6. assignment_tag 改成simple_tag

@register.assignment_tag改成了@register.simple_tag

django2.0 更新的特性

下面的是更新到Django 2.0遇到的一些新特性

7. on_delete=models.CASCADE

为model的ForeignKey和OneToOne的属性增加on_delete=models.CASCADE

8. URL编写进行了简化

Django以前的URL规则是正则规则,写起来是有点反人类的,一点都不Pythonic。开发者们一直在被迫写类似这样的匹配表达式:

url(r'^articles/(?P<year>[0-9]{4})/$', views.year_archive),

现在,你可以这样写了:

path('articles/<int:year>/', views.year_archive),

9. 聚合操作

数据库查询的聚合操作annotate中,增加了一个叫Window的操作,和一个叫Frame的条件。

10. 首页

除此之外,首次启动的欢迎页面也重做了,感觉高大上了很多,有没有 django2-index

总结

有关Django 2.0的新功能和更改的完整列表,请参阅官方文档。

好了,以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对三水点靠木的支持。

Python 相关文章推荐
Python 开发Activex组件方法
Nov 08 Python
Python不规范的日期字符串处理类
Jun 10 Python
Python中操作MySQL入门实例
Feb 08 Python
Python获取暗黑破坏神3战网前1000命位玩家的英雄技能统计
Jul 04 Python
python使用arcpy.mapping模块批量出图
Mar 06 Python
Python设计模式之适配器模式原理与用法详解
Jan 15 Python
python实现电子产品商店
Feb 26 Python
python 使用socket传输图片视频等文件的实现方式
Aug 07 Python
Python嵌入C/C++进行开发详解
Jun 09 Python
Python enumerate() 函数如何实现索引功能
Jun 29 Python
Python 如何查找特定类型文件
Aug 17 Python
pd.DataFrame中的几种索引变换的实现
Jun 16 Python
OpenCV2.3.1+Python2.7.3+Numpy等的配置解析
Jan 05 #Python
python with提前退出遇到的坑与解决方案
Jan 05 #Python
微信跳一跳小游戏python脚本
Jan 05 #Python
Python通过OpenCV的findContours获取轮廓并切割实例
Jan 05 #Python
Python+selenium实现截图图片并保存截取的图片
Jan 05 #Python
微信跳一跳辅助python代码实现
Jan 05 #Python
使用python为mysql实现restful接口
Jan 05 #Python
You might like
与空气斗智斗勇的经典《Overlord》,传说中的“无稽之谈”
2020/04/09 日漫
关于BIG5-HKSCS的解决方法
2007/03/20 PHP
Snoopy类使用小例子
2008/04/15 PHP
Codeigniter中mkdir创建目录遇到权限问题和解决方法
2014/07/25 PHP
PHP的引用详解
2015/02/22 PHP
PHP判断用户是否已经登录(跳转到不同页面或者执行不同动作)
2016/09/22 PHP
php readfile()修改文件上传大小设置
2017/08/11 PHP
javascript 模式设计之工厂模式详细说明
2010/05/10 Javascript
最新28个很棒的jQuery 教程
2011/05/28 Javascript
JavaScript中的this关键字使用方法总结
2015/03/13 Javascript
Atitit.js的键盘按键事件捆绑and事件调度
2016/04/01 Javascript
JavaScript兼容浏览器FF/IE技巧
2016/08/14 Javascript
js代码实现下拉菜单【推荐】
2016/12/15 Javascript
ES6新特性之变量和字符串用法示例
2017/04/01 Javascript
vue添加axios,并且指定baseurl的方法
2018/09/19 Javascript
Vue中的情侣属性$dispatch和$broadcast详解
2019/03/07 Javascript
Vue编写可显示周和月模式的日历 Vue自定义日历内容的显示
2019/06/26 Javascript
浅谈vue 锚点指令v-anchor的使用
2019/11/13 Javascript
Python中条件判断语句的简单使用方法
2015/08/21 Python
一看就懂得Python的math模块
2018/10/21 Python
正确理解Python中if __name__ == '__main__'
2019/01/24 Python
Python实现一个数组除以一个数的例子
2019/07/20 Python
Python使用百度api做人脸对比的方法
2019/08/28 Python
基于pytorch的lstm参数使用详解
2020/01/14 Python
tensorflow 实现自定义梯度反向传播代码
2020/02/10 Python
.NET里面什么时候需要调用垃圾回收
2015/06/01 面试题
财务管理个人自荐书范文
2013/11/24 职场文书
创业计划实施的7大步骤
2014/02/05 职场文书
国培计划培训感言
2014/03/11 职场文书
周年庆促销方案
2014/03/15 职场文书
纪念九一八事变演讲稿:牢记历史,捍卫主权
2014/09/14 职场文书
法人授权委托书范本
2014/09/17 职场文书
十佳少年事迹材料
2014/12/25 职场文书
奖金申请报告模板
2015/05/15 职场文书
运动会广播稿200字
2015/08/19 职场文书
详解如何使用Nginx解决跨域问题
2022/05/06 Servers