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编写Linux系统守护进程实例
Feb 03 Python
连接Python程序与MySQL的教程
Apr 29 Python
Python3读取文件常用方法实例分析
May 22 Python
Python开发之快速搭建自动回复微信公众号功能
Apr 22 Python
python snownlp情感分析简易demo(分享)
Jun 04 Python
python 读取鼠标点击坐标的实例
Dec 29 Python
Django框架实现分页显示内容的方法详解
May 10 Python
Python实现简单的列表冒泡排序和反转列表操作示例
Jul 10 Python
python中类的输出或类的实例输出为这种形式的原因
Aug 12 Python
Python操作注册表详细步骤介绍
Feb 05 Python
python opencv 检测移动物体并截图保存实例
Mar 10 Python
Pytorch可视化的几种实现方法
Jun 10 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 高性能书写
2010/12/11 PHP
PHP中文竖排转换实现方法
2015/10/23 PHP
php代码检查代理ip的有效性
2016/08/19 PHP
onsubmit阻止form表单提交与onclick的相关操作
2010/09/03 Javascript
JS控件的生命周期介绍
2012/10/22 Javascript
jQuery层级选择器用法分析
2015/02/10 Javascript
javascript实现的图片切割多块效果实例
2015/05/07 Javascript
js去除浏览器默认底图的方法
2015/06/08 Javascript
JS实现兼容性好,自动置顶的淘宝悬浮工具栏效果
2015/09/18 Javascript
JavaScript 对象深入学习总结(经典)
2015/09/29 Javascript
基于JavaScript Array数组方法(新手必看篇)
2016/08/20 Javascript
jQuery 检查某个元素在页面上是否存在实例代码
2016/10/27 Javascript
localStorage实现便签小程序
2016/11/28 Javascript
微信小程序图片横向左右滑动案例
2017/05/19 Javascript
开发Vue树形组件的示例代码
2017/12/21 Javascript
vue树形结构获取键值的方法示例
2018/06/21 Javascript
js实现页面多个日期时间倒计时效果
2019/06/20 Javascript
Vue中通过Vue.extend动态创建实例的方法
2019/08/13 Javascript
[03:04]DOTA2超级联赛专访ZSMJ “莫名其妙”的逆袭
2013/05/23 DOTA
python自动化测试实例解析
2014/09/28 Python
django实现分页的方法
2015/05/26 Python
Python多维/嵌套字典数据无限遍历的实现
2016/11/04 Python
利用Python如何将数据写到CSV文件中
2018/06/05 Python
Python SQL查询并生成json文件操作示例
2018/08/17 Python
使用python将图片格式转换为ico格式的示例
2018/10/22 Python
Python设计模式之工厂方法模式实例详解
2019/01/18 Python
pip 安装库比较慢的解决方法(国内镜像)
2019/10/06 Python
图片上传插件ImgUploadJS:用HTML5 File API 实现截图粘贴上传、拖拽上传
2016/01/20 HTML / CSS
新加坡航空官方网站:Singapore Airlines
2016/10/13 全球购物
护士进修自我鉴定
2014/02/07 职场文书
2014年单位工作总结范文
2014/11/27 职场文书
关于调整工作时间的通知
2015/04/24 职场文书
欠款起诉书范文
2015/05/19 职场文书
美丽心灵观后感
2015/06/01 职场文书
写作技巧:优秀文案必备的3种结构
2019/08/19 职场文书
MySQL如何使备份得数据保持一致
2022/05/02 MySQL