django 2.0更新的10条注意事项总结
作者:daisy 发布时间:2023-05-22 10:48:35
前言
备受期待的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_authenticated
和User.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的新功能和更改的完整列表,请参阅官方文档。
好了,以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对脚本之家的支持。
来源:https://blog.qikqiak.com/post/upgrading-django-20-10-tips/


猜你喜欢
- 第一种:获取不带后缀的文件名,直接上代码:就是直接用basename()函数就可以返回路径中的文件名部分,其语法是“basename(pat
- python版本:python 3.9 mutagen版本:1.46.0mutagen是一个处理音频元数据的pytho
- CASE 表达式分为简单表达式与搜索表达式,其中搜索表达式可以覆盖简单表达式的全部能力,我也建议只写搜索表达式,而不要写简单表达式。简单表达
- 1.利用装饰器在视图中拦截未登录的url@login_required(login_url='/user/login/')d
- 在深度学习的数据训练过程中,虽然tensorflow和pytorch都会自带打乱数据进行训练的方法,但是当我们自己生成数据,或者某些情况下依
- 最近在着手支付宝个人版改版的项目,正好在一些国内知名的SNS网站上分别注册了帐户进行体验。显然一点,国内的SNS都带有Facebook的影子
- 经过1个周的摸索和查阅资料,终于搞定VUE3中自定义指令,实现按钮级别的权限控制。当然,只是简单的对按钮进行隐藏和删除的dom操作比较容易,
- 有关pygal的安装,大家可以参阅《pip和pygal的安装实例教程》。直方图:直方图是一个特殊的条,它可以取3个数值:纵坐标高度,横坐标开
- 一、创建虚拟环境python -m venv env通过执行命令,创建一个名为env的虚拟环境,命令执行完毕后会出现一个env文件夹,这是一
- 一、正则1.正则表达式定义正则就是用一些具有特殊含义的符号组合到一起(称为正则表达式)来描述字符或者字符串的方法。或者说:正则就是用来描述一
- 这次代码主要是实现列表的排序,使用sort函数实现,sort函数是对列表中的元素按照特定顺序进行排序,默认reverse,为false,从小
- 首先将ORACLE 10g的安装光盘放入光驱,如果自动运行,一般会出现如图1安装界面: 图1 单击“开始安装”,就可以安装ORACLE 10
- 最近博主在边学flask边写测试平台,碰到一个比较常用的场景如下图所示这里有一个输入框组,下拉菜单里面有3个选项,还有一个输入框,代码是用
- 1.主要用到 QFileDialog 方法打开本地文件2.界面打开前:打开后:3. 代码import sysfrom PyQt5 impor
- 一、word转pdf先安装win32库:pip install pywin32from win32com.client import gen
- 之前用来整理图片的小程序,拿来备忘,算是使用Python复制文件的一个例子。# -*- coding: utf-8 -*-#程序用来拷贝文件
- 单页应用程序是或多或少复杂的应用程序,它加载一个单一的HTML页面。每当用户与它们互动时,它们就会使用JavaScript动态地更新其内容。
- <%Class Cls_TemplateDim RegDim PageDim CIDDim SIDDim RuleDim Conten
- 问题描述:一个父容器也是window的window下的comboBox在页面中点击无效,但是在控制台中查看它的store却是有值的,问题在于
- 本文实例讲述了python写入xml文件的方法。分享给大家供大家参考。具体分析如下:本范例通过xml模块对xml文件进行写入操作from x