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装饰器使用方法实例
Nov 21 Python
Python学习之asyncore模块用法实例教程
Sep 29 Python
Python urllib、urllib2、httplib抓取网页代码实例
May 09 Python
Python正则简单实例分析
Mar 21 Python
深入浅出分析Python装饰器用法
Jul 28 Python
详解python string类型 bytes类型 bytearray类型
Dec 16 Python
Python实现感知机(PLA)算法
Dec 20 Python
Python实现PS图像明亮度调整效果示例
Jan 23 Python
python调用API实现智能回复机器人
Apr 10 Python
Python aiohttp百万并发极限测试实例分析
Oct 26 Python
Tensorflow实现多GPU并行方式
Feb 03 Python
python实现web邮箱扫描的示例(附源码)
Mar 30 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中for与foreach的区别分析
2011/03/09 PHP
php中用unset销毁变量并释放内存
2020/05/10 PHP
IE和Mozilla的兼容性汇总event
2007/08/12 Javascript
JavaScript 的方法重载效果
2009/08/07 Javascript
JS URL传中文参数引发的乱码问题
2009/09/02 Javascript
Extjs TriggerField在弹出窗口显示不出问题的解决方法
2010/01/08 Javascript
jquery 获取dom固定元素 添加样式的简单实例
2014/02/04 Javascript
js实现点击获取验证码倒计时效果
2021/01/28 Javascript
javaScript事件学习小结(四)event的公共成员(属性和方法)
2016/06/09 Javascript
基于Vuejs实现购物车功能
2016/08/02 Javascript
jQuery实现表格与ckeckbox的全选与单选功能
2016/11/24 Javascript
关于Function中的bind()示例详解
2016/12/02 Javascript
vue实现列表的添加点击
2016/12/29 Javascript
Vue.js基础知识小结
2017/01/13 Javascript
自制简易打赏功能的实例
2017/09/02 Javascript
Vue实现简易翻页效果源码分享
2018/11/08 Javascript
vue登录以及权限验证相关的实现
2019/10/25 Javascript
python绘图方法实例入门
2015/05/19 Python
Python 常用的安装Module方式汇总
2017/05/06 Python
python实现比较文件内容异同
2018/06/22 Python
Python模拟FTP文件服务器的操作方法
2020/02/18 Python
Python 从attribute到property详解
2020/03/05 Python
CSS3 实现飘动的云朵动画
2020/12/01 HTML / CSS
英国体育器材进口商店:UK Sport Imports
2017/03/14 全球购物
荷兰超市:DEEN
2018/03/14 全球购物
Clarks其乐鞋荷兰官网:Clarks荷兰
2019/07/05 全球购物
自动化专业毕业生自荐信
2013/11/01 职场文书
致裁判员加油稿
2014/02/08 职场文书
公司晚会策划方案
2014/05/17 职场文书
委托证明范本
2014/11/25 职场文书
大三学生英语考试作弊检讨书
2015/01/01 职场文书
房地产公司工程部经理岗位职责
2015/04/09 职场文书
现货白银电话营销话术
2015/05/29 职场文书
python实现股票历史数据可视化分析案例
2021/06/10 Python
使用canvas仿Echarts实现金字塔图的实例代码
2021/11/11 HTML / CSS
Java中生成微信小程序太阳码的实现方案
2022/06/01 Java/Android