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 相关文章推荐
Python3连接MySQL(pymysql)模拟转账实现代码
May 24 Python
python图像常规操作
Nov 11 Python
Python回文字符串及回文数字判定功能示例
Mar 20 Python
基于python OpenCV实现动态人脸检测
May 25 Python
超简单使用Python换脸实例
Mar 27 Python
python使用原始套接字发送二层包(链路层帧)的方法
Jul 22 Python
Python 分发包中添加额外文件的方法
Aug 16 Python
浅谈Django2.0 加xadmin踩的坑
Nov 15 Python
python求绝对值的三种方法小结
Dec 04 Python
python计算二维矩形IOU实例
Jan 18 Python
python安装后的目录在哪里
Jun 21 Python
keras输出预测值和真实值方式
Jun 27 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语法(2)
2006/10/09 PHP
PHP整数取余返回负数的相关解决方法
2014/05/15 PHP
PHP 搜索查询功能实现
2016/11/29 PHP
如何打开php的gd2库
2017/02/09 PHP
php+jQuery实现的三级导航栏下拉菜单显示效果
2017/08/10 PHP
PHP中非常有用却鲜有人知的函数集锦
2019/08/17 PHP
在Z-Blog中运行代码[html][/html](纯JS版)
2007/03/25 Javascript
用js实现计算代码行数的简单方法附代码
2007/08/13 Javascript
编写跨浏览器的javascript代码必备[js多浏览器兼容写法]
2008/10/29 Javascript
一些经常会用到的Javascript检测函数
2010/05/31 Javascript
JavaScript中关于indexOf的使用方法与问题小结
2010/08/05 Javascript
jQuery操作select的实例代码
2012/06/14 Javascript
Jquery实现仿新浪微博获取文本框能输入的字数代码
2013/02/22 Javascript
js关闭当前页面(窗口)的几种方式总结
2013/03/05 Javascript
js中复制行和删除行的操作实例
2013/06/25 Javascript
Javascript基础教程之switch语句
2015/01/18 Javascript
jQuery 回调函数(callback)的使用和基础
2015/02/26 Javascript
js实现点击链接后延迟3秒再跳转的方法
2015/06/05 Javascript
详解Webpack抽离第三方类库以及common解决方案
2020/03/30 Javascript
[54:28]EG vs OG 2019国际邀请赛小组赛 BO2 第一场 8.16
2019/08/18 DOTA
python时间整形转标准格式的示例分享
2014/02/14 Python
老生常谈Python基础之字符编码
2017/06/14 Python
Python中扩展包的安装方法详解
2017/06/14 Python
Python3操作SQL Server数据库(实例讲解)
2017/10/21 Python
Python 错误和异常代码详解
2018/01/29 Python
python Django里CSRF 对应策略详解
2019/08/05 Python
Python编程快速上手——Excel表格创建乘法表案例分析
2020/02/28 Python
python如何求100以内的素数
2020/05/27 Python
经济实惠的豪华家具:My-Furniture
2019/03/12 全球购物
《将心比心》教学反思
2014/04/08 职场文书
员工保密承诺书
2014/05/28 职场文书
普通党员个人剖析材料
2014/10/08 职场文书
2014年财政所工作总结
2014/11/22 职场文书
机关工会工作总结2015
2015/05/26 职场文书
python获取字符串中的email
2022/03/31 Python
浅析JavaScript中的变量提升
2022/06/01 Javascript