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文件写入实例分析
Apr 08 Python
python实用代码片段收集贴
Jun 03 Python
Python模拟百度登录实例详解
Jan 20 Python
利用PyInstaller将python程序.py转为.exe的方法详解
May 03 Python
Python时间戳使用和相互转换详解
Dec 11 Python
Python编程argparse入门浅析
Feb 07 Python
目前最全的python的就业方向
Jun 05 Python
Python统计纯文本文件中英文单词出现个数的方法总结【测试可用】
Jul 25 Python
python递归实现快速排序
Aug 18 Python
解析Python3中的Import
Oct 13 Python
django 利用Q对象与F对象进行查询的实现
May 15 Python
如何通过python计算圆周率PI
Nov 11 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如何得到当前页和上一页的地址?
2006/11/27 PHP
过滤掉PHP数组中的重复值的实现代码
2011/07/17 PHP
php中多维数组按指定value排序的实现代码
2014/08/19 PHP
阿里云Win2016安装Apache和PHP环境图文教程
2018/03/11 PHP
PHP文件类型检查及fileinfo模块安装使用详解
2019/05/09 PHP
jQuery解决iframe高度自适应代码
2009/12/20 Javascript
一个js导致的jquery失效问题的解决方法
2013/11/27 Javascript
jquery自定义函数的多种方法
2014/01/09 Javascript
jquery validate 自定义验证方法介绍 日期验证
2014/02/27 Javascript
JavaScript编写推箱子游戏
2015/07/07 Javascript
纯css实现窗户玻璃雨滴逼真效果
2015/08/23 Javascript
js淡入淡出的图片轮播效果代码分享
2015/08/24 Javascript
Javascript中匿名函数的调用与写法实例详解(多种)
2016/01/26 Javascript
js判断所有表单项不为空则提交表单的实现方法
2016/09/09 Javascript
利用select实现年月日三级联动的日期选择效果【推荐】
2016/12/13 Javascript
12306 刷票脚本及稳固刷票脚本(防挂)
2017/01/04 Javascript
js选项卡的制作方法
2017/01/23 Javascript
JS实现小球的弹性碰撞效果
2017/11/11 Javascript
Vue请求JSON Server服务器数据的实现方法
2018/11/02 Javascript
微信小程序仿淘宝热搜词在搜索框中轮播功能
2020/01/21 Javascript
JavaScript中的this原理及6种常见使用场景详解
2020/02/14 Javascript
html-webpack-plugin修改页面的title的方法
2020/06/18 Javascript
深入解析Python的Tornado框架中内置的模板引擎
2016/07/11 Python
Python3转换html到pdf的不同解决方案
2019/03/11 Python
Python Datetime模块和Calendar模块用法实例分析
2019/04/15 Python
python三大神器之fabric使用教程
2019/06/10 Python
python 实现绘制整齐的表格
2019/11/18 Python
使用python的turtle函数绘制一个滑稽表情
2020/02/28 Python
Django后端按照日期查询的方法教程
2021/02/28 Python
Canvas 文本转粒子效果的实现代码
2019/02/14 HTML / CSS
创业计划书怎样才能打动风投
2014/01/01 职场文书
国际会议邀请函范文
2014/01/16 职场文书
小学教师师德反思
2014/02/03 职场文书
沈阳故宫导游词
2015/01/31 职场文书
个人年底工作总结
2015/03/10 职场文书
小学英语教学随笔
2015/08/14 职场文书