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列表生成器的循环技巧分享
Mar 06 Python
使用python加密自己的密码
Aug 04 Python
python并发编程之多进程、多线程、异步和协程详解
Oct 28 Python
WINDOWS 同时安装 python2 python3 后 pip 错误的解决方法
Mar 16 Python
Python使用win32com实现的模拟浏览器功能示例
Jul 13 Python
Python与人工神经网络:使用神经网络识别手写图像介绍
Dec 19 Python
深入了解Python中pop和remove的使用方法
Jan 09 Python
python+POP3实现批量下载邮件附件
Jun 19 Python
python实现推箱子游戏
Mar 25 Python
python 图像处理画一个正弦函数代码实例
Sep 10 Python
使用tqdm显示Python代码执行进度功能
Dec 08 Python
python利用proxybroker构建爬虫免费IP代理池的实现
Feb 21 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
php中根据某年第几天计算出日期年月日的代码
2011/02/24 PHP
朋友网关于QQ相关的PHP代码(研究QQ的绝佳资料)
2015/01/26 PHP
win7安装php框架Yii的方法
2016/01/25 PHP
实例详解PHP中html word 互转的方法
2016/01/28 PHP
javascript读取RSS数据
2007/01/20 Javascript
JS实现日期加减的方法
2013/11/29 Javascript
JS中操作JSON总结
2020/12/06 Javascript
JavaScript function 的 length 属性使用介绍
2014/09/15 Javascript
Javascript添加监听与删除监听用法详解
2014/12/19 Javascript
JavaScript简单判断复选框是否选中及取出值的方法
2015/08/13 Javascript
JavaScript类的写法
2016/09/17 Javascript
原生JS取代一些JQuery方法的简单实现
2016/09/20 Javascript
基于JavaScript实现拖动滑块效果
2017/02/16 Javascript
纯js的右下角弹窗实例
2017/03/12 Javascript
JS与jQuery实现子窗口获取父窗口元素值的方法
2017/04/17 jQuery
利用Vue.js+Node.js+MongoDB实现一个博客系统(附源码)
2017/04/24 Javascript
Vue.js实现开发购物车功能的方法详解
2019/02/22 Javascript
jquery获取input输入框中的值
2019/11/13 jQuery
js实现适配移动端的拖动效果
2020/01/13 Javascript
antd-mobile ListView长列表的数据更新遇到的坑
2020/04/08 Javascript
微信小程序学习总结(五)常见问题实例小结
2020/06/04 Javascript
[41:12]Liquid vs Secret 2019国际邀请赛淘汰赛 败者组 BO3 第一场 8.24
2019/09/10 DOTA
Python深入学习之闭包
2014/08/31 Python
用Python编写一个基于终端的实现翻译的脚本
2015/04/24 Python
解析Python中的生成器及其与迭代器的差异
2016/06/20 Python
Python pandas实现excel工作表合并功能详解
2019/08/29 Python
对tensorflow中cifar-10文档的Read操作详解
2020/02/10 Python
Django通过设置CORS解决跨域问题
2020/11/26 Python
HTML5单页面手势滑屏切换原理分析
2017/07/10 HTML / CSS
德国高品质男装及配饰商城:Cultizm(Raw Denim原色牛仔裤)
2018/04/16 全球购物
平面设计岗位职责
2013/12/14 职场文书
教育技术学专业职业规划书
2014/03/03 职场文书
内蒙古鄂尔多斯市市长寄语
2014/04/10 职场文书
党员民主评议个人总结
2014/10/20 职场文书
2015年社区文体活动总结
2015/03/25 职场文书
电影圆明园观后感
2015/06/03 职场文书