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 相关文章推荐
在Windows系统上搭建Nginx+Python+MySQL环境的教程
Dec 25 Python
Python爬取三国演义的实现方法
Sep 12 Python
python中文分词,使用结巴分词对python进行分词(实例讲解)
Nov 14 Python
Python爬取数据保存为Json格式的代码示例
Apr 09 Python
使用python画社交网络图实例代码
Jul 10 Python
新手入门Python编程的8个实用建议
Jul 12 Python
Tensorflow实现神经网络拟合线性回归
Jul 19 Python
Python实现打印实心和空心菱形
Nov 23 Python
python对Excel按条件进行内容补充(推荐)
Nov 24 Python
python找出列表中大于某个阈值的数据段示例
Nov 24 Python
matlab中imadjust函数的作用及应用举例
Feb 27 Python
使用Keras中的ImageDataGenerator进行批次读图方式
Jun 17 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+oracle 分页类
2006/10/09 PHP
PHP 的几个配置文件函数
2006/12/21 PHP
php静态成员方法和静态的成员属性的使用方法
2017/10/26 PHP
增强的 JavaScript 的 trim 函数的代码
2007/08/13 Javascript
javascript 冒号 使用说明
2009/06/06 Javascript
浅析JavaScript中两种类型的全局对象/函数
2013/12/05 Javascript
jquery实现增加删除行的方法
2015/02/03 Javascript
JavaScript中递归实现的方法及其区别
2017/09/12 Javascript
详解angular部署到iis出现404解决方案
2018/08/14 Javascript
Vue2.2.0+新特性整理及注意事项
2018/08/22 Javascript
如何在微信小程序中实现Mixins方案
2019/06/20 Javascript
bootstrap table列和表头对不齐的解决方法
2019/07/19 Javascript
vue.js+elementUI实现点击左右箭头切换头像功能(类似轮播图效果)
2019/09/05 Javascript
详解element-ui级联菜单(城市三级联动菜单)和回显问题
2019/10/02 Javascript
[02:10]DOTA2 TI10勇士令状玩法及不朽Ⅰ展示:焕新世界,如你所期
2020/05/29 DOTA
sqlalchemy对象转dict的示例
2014/04/22 Python
Python实现全角半角转换的方法
2014/08/18 Python
Python Socket编程详细介绍
2017/03/23 Python
django开发教程之利用缓存文件进行页面缓存的方法
2017/11/10 Python
tensorflow 打印内存中的变量方法
2018/07/30 Python
只需7行Python代码玩转微信自动聊天
2019/01/27 Python
python 实现提取某个索引中某个时间段的数据方法
2019/02/01 Python
Python计算一个点到所有点的欧式距离实现方法
2019/07/04 Python
Python下应用opencv 实现人脸检测功能
2019/10/24 Python
Python使用xlrd实现读取合并单元格
2020/07/09 Python
解决python便携版无法直接运行py文件的问题
2020/09/01 Python
Python全局变量与global关键字常见错误解决方案
2020/10/05 Python
HTML5 FormData 方法介绍以及实现文件上传示例
2017/09/12 HTML / CSS
HTML5、Select下拉框右边加图标的实现代码(增进用户体验)
2017/10/16 HTML / CSS
化学相关工作求职信
2013/10/02 职场文书
服装创业计划书范文
2014/02/05 职场文书
广场舞大赛策划方案
2014/05/31 职场文书
县政府办公室领导班子个人对照检查材料
2014/09/16 职场文书
建议书格式
2015/02/04 职场文书
实习报告范文之电话客服岗位
2019/07/26 职场文书
Python如何用re模块实现简易tokenizer
2022/05/02 Python