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实现自动更换ip的方法
May 05 Python
利用Python自动监控网站并发送邮件告警的方法
Aug 24 Python
pycharm中连接mysql数据库的步骤详解
May 02 Python
Python操作MySQL数据库的方法
Jun 20 Python
python语音识别实践之百度语音API
Aug 30 Python
Python类的继承、多态及获取对象信息操作详解
Feb 28 Python
python GUI库图形界面开发之PyQt5信号与槽的高级使用技巧装饰器信号与槽详细使用方法与实例
Mar 06 Python
Python字符串的15个基本操作(小结)
Feb 03 Python
在 Golang 中实现 Cache::remember 方法详解
Mar 30 Python
如何利用Matlab制作一款真正的拼图小游戏
May 11 Python
Pyhton模块和包相关知识总结
May 12 Python
关于python类SortedList详解
Sep 04 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
免费手机号码归属地API查询接口和PHP使用实例分享
2014/04/10 PHP
使用配置类定义Codeigniter全局变量
2014/06/12 PHP
php中使用gd库实现远程图片下载实例
2015/05/12 PHP
基于thinkPHP框架实现留言板的方法
2016/10/17 PHP
PHP让数组中有相同值的组成新的数组实例
2017/12/31 PHP
PHP安装扩展mcrypt以及相关依赖项深入讲解
2021/03/04 PHP
js function使用心得
2010/05/10 Javascript
判断客户端浏览器是否安装了Flash插件的多种方法
2010/08/11 Javascript
Javascript计算时间差的函数分享
2011/07/04 Javascript
基于JQuery模仿苹果桌面的Dock效果(初级版)
2012/10/15 Javascript
Jquery中使用setInterval和setTimeout的方法
2013/04/08 Javascript
JS运动基础框架实例分析
2015/03/03 Javascript
基于javascript实现样式清新图片轮播特效
2016/03/30 Javascript
Angular页面间切换及传值的4种方法
2016/11/04 Javascript
详解微信小程序设置底部导航栏目方法
2017/06/29 Javascript
详解vue-cli与webpack结合如何处理静态资源
2017/09/19 Javascript
JS字符串去除连续或全部重复字符的实例
2018/03/08 Javascript
vue仿element实现分页器效果
2018/09/13 Javascript
webpack结合express实现自动刷新的方法
2019/05/07 Javascript
[01:31:02]TNC vs VG 2019国际邀请赛淘汰赛 胜者组赛BO3 第一场
2019/08/22 DOTA
python使用TensorFlow进行图像处理的方法
2018/02/28 Python
如何提高python 中for循环的效率
2020/04/15 Python
HTML5 本地存储和内容按需加载的思路和方法
2011/04/07 HTML / CSS
Html5 APP中监听返回事件处理的方法示例
2018/03/15 HTML / CSS
阿迪达斯荷兰官方网站:adidas荷兰
2018/03/16 全球购物
在线课程:Skillshare
2019/04/02 全球购物
xxx同志考察材料
2014/02/07 职场文书
毕业自我鉴定总结
2014/03/24 职场文书
出生证明公证书
2014/04/09 职场文书
关于感恩的演讲稿500字
2014/08/26 职场文书
民主生活会对照检查材料(统计局)
2014/09/21 职场文书
2014年教师业务工作总结
2014/12/19 职场文书
给客户的感谢信
2015/01/21 职场文书
离婚民事起诉状
2015/08/03 职场文书
高中历史教学反思
2016/02/19 职场文书
普希金的诗歌赏析(3首)
2019/08/20 职场文书