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设置默认编码为utf8的方法
Jul 01 Python
python利用requests库模拟post请求时json的使用教程
Dec 07 Python
python读取图片的方式,以及将图片以三维数组的形式输出方法
Jul 03 Python
如何利用Python模拟GitHub登录详解
Jul 15 Python
Python操作excel的方法总结(xlrd、xlwt、openpyxl)
Sep 02 Python
PyTorch加载自己的数据集实例详解
Mar 18 Python
Python文件时间操作步骤代码详解
Apr 13 Python
实现ECharts双Y轴左右刻度线一致的例子
May 16 Python
python读取图像矩阵文件并转换为向量实例
Jun 18 Python
用python写爬虫简单吗
Jul 28 Python
Python 多进程、多线程效率对比
Nov 19 Python
学点简单的Django之第一个Django程序的实现
Feb 24 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实现的一个很好用HTML解析器类可用于采集数据
2013/09/23 PHP
PHP中把数据库查询结果输出为json格式简单实例
2015/04/09 PHP
深入浅出php socket编程
2015/05/13 PHP
PHP常见错误提示含义解释(实用!值得收藏)
2016/04/25 PHP
验证坐标在某坐标区域内php代码
2016/10/08 PHP
PHP利用缓存处理用户注册时的邮箱验证,成功后用户数据存入数据库操作示例
2019/12/31 PHP
利用JQuery的load函数动态加载其它页面的内容的实现代码
2010/12/14 Javascript
将字符串中由空格隔开的每个单词首字母大写
2014/04/06 Javascript
JavaScript识别网页关键字并进行描红的方法
2015/11/09 Javascript
JS实现给对象动态添加属性的方法
2017/01/05 Javascript
Vue.js开发环境快速搭建教程
2017/03/17 Javascript
基于jQuery实现手风琴菜单、层级菜单、置顶菜单、无缝滚动效果
2017/07/20 jQuery
vue vuex vue-rouert后台项目——权限路由(适合初学)
2017/12/29 Javascript
Bootstrap Table 双击、单击行获取该行及全表内容
2018/08/31 Javascript
vue slot与传参实例代码讲解
2019/04/28 Javascript
vue draggable resizable gorkys与v-chart使用与总结
2019/09/05 Javascript
JavaScript 截取字符串代码实例
2019/09/05 Javascript
基于 Vue 的 Electron 项目搭建过程图文详解
2020/07/22 Javascript
python迭代器实例简析
2014/09/25 Python
Python实现公历(阳历)转农历(阴历)的方法示例
2017/08/22 Python
Python中的延迟绑定原理详解
2019/10/11 Python
Django的CVB实例详解
2020/02/10 Python
Python 3.8 新功能来一波(大部分人都不知道)
2020/03/11 Python
Python视频编辑库MoviePy的使用
2020/04/01 Python
Django调用支付宝接口代码实例详解
2020/04/04 Python
python 将列表里的字典元素合并为一个字典实例
2020/09/01 Python
html5 worker 实例(二) 图片变换效果
2013/06/24 HTML / CSS
发现世界上最好的珠宝设计师:JewelStreet
2017/12/17 全球购物
澳大利亚最受欢迎的超级商场每日优惠:Catch
2020/11/17 全球购物
信息技术专业大学生个人的自我评价
2013/10/05 职场文书
英文商务邀请信
2014/01/22 职场文书
学校运动会霸气口号
2014/06/07 职场文书
2014年药店店长工作总结
2014/11/17 职场文书
公务员考察材料
2014/12/23 职场文书
python3 实现mysql数据库连接池的示例代码
2021/04/17 Python
MySQL分区以及建索引的方法总结
2022/04/13 MySQL