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中命名空间的查找规则LEGB
Aug 06 Python
解决Python 遍历字典时删除元素报异常的问题
Sep 11 Python
Python md5与sha1加密算法用法分析
Jul 14 Python
浅析python的优势和不足之处
Nov 20 Python
对python周期性定时器的示例详解
Feb 19 Python
python障碍式期权定价公式
Jul 19 Python
利用python实现周期财务统计可视化
Aug 25 Python
Python读取YAML文件过程详解
Dec 30 Python
Python自动重新加载模块详解(autoreload module)
Apr 01 Python
python matplotlib实现将图例放在图外
Apr 17 Python
Python的轻量级ORM框架peewee使用教程
Feb 05 Python
C站最全Python标准库总结,你想要的都在这里
Jul 03 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
浅谈电磁辐射对健康的影响
2021/03/01 无线电
PHP与已存在的Java应用程序集成
2006/10/09 PHP
PHP4(windows版本)中的COM函数
2006/10/09 PHP
实测在class的function中include的文件中非php的global全局环境
2013/07/15 PHP
PHP实现简单爬虫的方法
2015/07/29 PHP
深入理解php printf() 输出格式化的字符串
2016/05/23 PHP
PHP中strpos、strstr和stripos、stristr函数分析
2016/06/11 PHP
php+jQuery+Ajax简单实现页面异步刷新
2016/08/08 PHP
兼容多浏览器的iframe自适应高度(ie8 、谷歌浏览器4.0和 firefox3.5.3)
2009/11/04 Javascript
javascript数组快速打乱重排的方法
2014/01/02 Javascript
javascript实现全局匹配并替换的方法
2015/04/27 Javascript
用JS写的一个Ajax库(实例代码)
2016/08/06 Javascript
微信小程序 Video API实例详解
2016/10/02 Javascript
JS 全屏和退出全屏详解及实例代码
2016/11/07 Javascript
详解Vue中使用v-for语句抛出错误的解决方案
2017/05/04 Javascript
Element UI 自定义正则表达式验证方法
2018/09/04 Javascript
4个顶级JavaScript高级文本编辑器
2018/10/10 Javascript
使用 node.js 模仿 Apache 小部分功能
2019/07/07 Javascript
Python列表list数组array用法实例解析
2014/10/28 Python
Python列表解析配合if else的方法
2018/06/23 Python
Python坐标轴操作及设置代码实例
2020/06/04 Python
python实现视频压缩功能
2020/12/18 Python
HTML5中新标签和常用标签详解
2014/03/07 HTML / CSS
美国一家专业的太阳镜网上零售商:Solstice太阳镜
2016/07/25 全球购物
加拿大领先的冒险和户外零售商:Atmosphere
2017/12/19 全球购物
出国签证在职证明
2014/01/16 职场文书
我们的节日端午节活动方案
2014/03/02 职场文书
商务日语专业自荐信
2014/04/17 职场文书
知识改变命运演讲稿
2014/05/21 职场文书
个人委托书范本汇总
2014/10/01 职场文书
2015年纪检监察工作总结
2015/04/08 职场文书
2015年美容师个人工作总结
2015/10/14 职场文书
公安纪律作风整顿心得体会
2016/01/23 职场文书
52条SQL语句教你性能优化
2021/05/25 MySQL
python之json文件转xml文件案例讲解
2021/08/07 Python
常用的文件对应的MIME类型汇总
2022/04/26 HTML / CSS