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中实现三目运算的方法
Jun 21 Python
Python 内置函数memoryview(obj)的具体用法
Nov 23 Python
Python tornado队列示例-一个并发web爬虫代码分享
Jan 09 Python
Selenium 模拟浏览器动态加载页面的实现方法
May 16 Python
Python实现线性判别分析(LDA)的MATLAB方式
Dec 09 Python
TensorFlow tf.nn.conv2d实现卷积的方式
Jan 03 Python
python 解决print数组/矩阵无法完整输出的问题
Feb 19 Python
python利用Excel读取和存储测试数据完成接口自动化教程
Apr 30 Python
pytorch  网络参数 weight bias 初始化详解
Jun 24 Python
Python logging模块进行封装实现原理解析
Aug 07 Python
python 通过 pybind11 使用Eigen加速代码的步骤
Dec 07 Python
python 用递归实现通用爬虫解析器
Apr 16 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
PHILIPS D1835/D1875的电路分析与打理
2021/03/02 无线电
PHP字符串的编码问题的详细介绍
2013/04/27 PHP
关于PHPDocument 代码注释规范的总结
2013/06/25 PHP
PHP用strstr()函数阻止垃圾评论(通过判断a标记)
2013/09/28 PHP
Laravel 框架控制器 Controller原理与用法实例分析
2020/04/14 PHP
接收键盘指令的脚本
2006/06/26 Javascript
jQuery EasyUI 中文API Button使用实例
2010/04/14 Javascript
javascript判断iphone/android手机横竖屏模式的函数
2011/12/20 Javascript
JS解决ie6下png透明的方法实例
2013/08/02 Javascript
js计算文本框输入的字符数
2015/10/23 Javascript
JavaScript开发Chrome浏览器扩展程序UI的教程
2016/05/16 Javascript
客户端验证用户名和密码的方法详解
2016/06/16 Javascript
Vue.js学习之计算属性
2017/01/22 Javascript
完美的js图片轮换效果
2017/02/05 Javascript
Javascript循环删除数组中元素的几种方法示例
2017/05/18 Javascript
VUE中v-model和v-for指令详解
2017/06/23 Javascript
Textarea输入字数限制实例(兼容iOS&amp;安卓)
2017/07/06 Javascript
Vue数据绑定简析小结
2019/05/07 Javascript
[07:06]2018DOTA2国际邀请赛寻真——卫冕冠军Team Liquid
2018/08/10 DOTA
跟老齐学Python之传说中的函数编写条规
2014/10/11 Python
python从入门到精通(DAY 1)
2015/12/20 Python
Python 绘图和可视化详细介绍
2017/02/11 Python
python操作oracle的完整教程分享
2018/01/30 Python
PyQt5的PyQtGraph实践系列3之实时数据更新绘制图形
2019/05/13 Python
python二维码操作:对QRCode和MyQR入门详解
2019/06/24 Python
Django REST Framework序列化外键获取外键的值方法
2019/07/26 Python
Python操作Excel工作簿的示例代码(\*.xlsx)
2020/03/23 Python
Python环境配置实现pip加速过程解析
2020/11/27 Python
Python .py生成.pyd文件并打包.exe 的注意事项说明
2021/03/04 Python
2014自荐信的写作技巧
2014/01/28 职场文书
党的群众路线教育实践活动宣传方案
2014/02/23 职场文书
小学语文业务学习材料
2014/06/02 职场文书
学校少先队工作总结
2015/08/12 职场文书
《检阅》教学反思
2016/02/22 职场文书
一篇文章弄懂Python中的内建函数
2021/08/07 Python
基于Python和openCV实现图像的全景拼接详细步骤
2021/10/05 Python