django 2.0更新的10条注意事项总结

前言

备受期待的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的新功能和更改的完整列表,请参阅官方文档。

好了,以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对我们的支持。

您可能感兴趣的文章:

  • 浅谈Django自定义模板标签template_tags的用处
  • 关于Django显示时间你应该知道的一些问题
  • django2 快速安装指南分享
  • Django 2.0版本的新特性抢先看!
  • 使用python和Django完成博客数据库的迁移方法
  • django admin添加数据自动记录user到表中的实现方法
  • 浅谈django model postgres的json字段编码问题
  • 浅谈Django学习migrate和makemigrations的差别
(0)

相关推荐

  • django2 快速安装指南分享

    1. 安装 作为一个 Python Web 框架,Django需要Python的支持.请参阅 我可以在Django中使用哪些Python版本?了解详情.Python包含一个名为SQLite轻量级的数据库,因此你不需要设置数据库. 请通过https://www.python.org/downloads/或操作系统的软件包管理器获取最新版本的Python. 你可以通过Python从shell中来验证是否安装了Python:你应该看到以下内容: Python 3.4.x [GCC 4.x] on li

  • 浅谈Django自定义模板标签template_tags的用处

    自定义模板标签,过滤器.英文翻译是Customtemplatetagsandfilters.customfilter自定义过滤器今天不在我的记录范围之内,以后用到再看官方文档也不迟. **问题1:**customtemplatetags到底长啥样? customtemplatetags-github Manytemplatetagstakeanumberofarguments–stringsortemplatevariables–andreturnaresultafterdoingsomepro

  • 关于Django显示时间你应该知道的一些问题

    UTC与DST UTC可以视为一个世界统一的时间,以原子时为基础,其他时区的时间都是在这个基础上增加或减少的,比如中国的时区就为UTC+8. DST(夏时制)则是为了充分利用夏天日照长的特点,充分利用光照节约能源而人为调整时间的一种机制.通过在夏天将时间向前加一小时,使人们早睡早起节约能源.虽然很多西方国家都采用了DST,但是中国不采用DST. 1. 时区问题 首先是时区的问题,Django 默认使用的是 UTC 世界协调时,又叫世界统一时间.中国的时间与 UTC 的时差是+8小时,也就是中国时

  • 使用python和Django完成博客数据库的迁移方法

    上一讲完成了基本博客的配置和项目工程的生成.这次开始将博客一些基本的操作主要是数据库方面学习. 1.设计博客数据库表结构 博客最主要的功能就是展示我们写的文章,它需要从某个地方获取博客文章数据才能把文章展示出来,通常来说这个地方就是数据库.我们把写好的文章永久地保存在数据库里,当用户访问我们的博客时,Django 就去数据库里把这些数据取出来展现给用户. 博客的文章应该含有标题.正文.作者.发表时间等数据.一个更加现代化的博客文章还希望它有分类.标签.评论等.为了更好地存储这些数据,我们需要合理

  • 浅谈Django学习migrate和makemigrations的差别

    本文主要研究的是Django中migrate和makemigrations的差别,具体如下. 在你改动了 model.py的内容之后执行下面的命令: Python manger.py makemigrations 相当于 在该app下建立 migrations目录,并记录下你所有的关于modes.py的改动,比如0001_initial.py, 但是这个改动还没有作用到数据库文件 你可以手动打开这个文件,看看里面是什么 在此之后执行命令 python manager.py migrate 将该改

  • Django 2.0版本的新特性抢先看!

    前言 2017年12月2日,Django官方发布了2.0版本,成为多年来的第一次大版本提升,那么2.0对广大Django使用者有哪些变化和需要注意的地方呢? 一.Python兼容性 Django 2.0支持Python3.4.3.5和3.6.Django官方强烈推荐每个系列的最新版本. 最重要的是Django 2.0不再支持Python2! Django 1.11.x是支持Python2.7的最后版本. 二.2.0新特性 1.简化了URL路由语法 django.urls.path()方法的语法更

  • 浅谈django model postgres的json字段编码问题

    django model的json字段的编码器不能有效编码诸如uuid,datetime等数据类型,当直接存储此类型的对象到json字段中为抛出编码异常,这时可以通过JSONField字段的encoder参数指定json编码器,这里直接使用django rest framework 的 JSONEncoder from django.contrib.postgres.fields import JSONField from rest_framework.utils.encoders import

  • django admin添加数据自动记录user到表中的实现方法

    1.需求:在后台添加一条数据的同时要把添加者记录到表中. 2.models.py class Setting(models.Model): ... user = models.CharField(max_length=50, blank=True, help_text=u"添加者") ... 3.admin.py @register(Setting) class SettingAdmin(admin.ModelAdmin): list_display = ("pk"

  • django 2.0更新的10条注意事项总结

    前言 备受期待的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的最后版本. djan

  • 地震发生时的10条注意事项

    1.保护自身和家人的生命安全!  地震时的剧烈摇动约1分钟左右.请躲在结实的桌.台等下面藏身,保护头部. 2.发生地震时应立即关闭火源!如果起火应马上灭火! 关闭火源能防止灾害扩大.应养成习惯,即使是小地震也要立刻关闭火源. 3.不要慌乱地跑到室外! 胡乱地跑到室外非常危险.请认真确认周围情况以后,再从容行动.  4.打开门以确保出口!  混凝土建的公寓等,有时会因为地震的摇动而使房门歪斜而打不开.请打开门以确保出口.  5.在室外时应保护头部,躲开危险的物体!  在室外遇到地震时,应注意围墙倒

  • 关于Vue Router的10条高级技巧总结

    前言 Vue Router 是 Vue.js官方的路由管理器. 它和 Vue.js 的核心深度集成,让构建单页面应用变得易如反掌. 包含的功能有: 嵌套的路由/视图表 模块化的.基于组件的路由配置 路由参数.查询.通配符 基于 Vue.js 过渡系统的视图过渡效果 细粒度的导航控制 带有自动激活的 CSS class 的链接 HTML5 历史模式或 hash 模式,在 IE9 中自动降级 自定义的滚动条行为 本文是作者是实际项目中遇到的一些总结,主要包括: 响应路由参数变化 路由匹配 高级匹配模

  • MongoDB数据库常用的10条操作命令

    目录 1. 显示全部可用数据库 2. 切换数据库 3. 显示数据集 1. 显示全部可用数据库 > show dbs; 该命令将展示 mongo 的全部数据库名称,并列出来. 2. 切换数据库 > use mydb; 该命令会选择一个指定的数据库,如果数据库不存在,则会自动创建一个.但是需要注意,由于此时数据库没有数据,因此当使用 show dbs命令的时候,看不到该数据库.只有插入了数据集后才可以看到. 3. 显示数据集 > show collections; 4. 插入数据 插入数据的

  • Oracle结合Mybatis实现取表TOP 10条数据

    之前一直使用mysql和informix数据库,查表中前10条数据十分简单: 最原始版本: select top * from student 当然,我们还可以写的复杂一点,比如外加一些查询条件? 比如查询前10条成绩大于80分的学生信息 添加了where查询条件的版本: select top * from table where score > 80 但是!!oracle中没有top啊!!!!那么该如何实现呢? 嗯,可以用rownum! oracle中原始版本 select * from st

  • access mysql mssql 随机 10条数据的sql语句 原创

    access 随机 10条数据的方法 复制代码 代码如下: select * from table order by rnd(id) 其中rnd(id)中的id为表中的自增长字段access随机显示记录(不重复)解决方案 复制代码 代码如下: <% '-------------------------数据库连接----------------------- Set objConn = Server.CreateObject("ADODB.Connection") objConn.

  • 10条PHP编程习惯助你找工作

    过去的几周对我来说是一段相当复杂的经历.我们公司进行了大裁员,我是其中之一,但却体验到了其中的乐趣.我从来没有被开除过,所以很难不去想得太多.我开始浏览招聘板块,一个全职PHP程序员的职位很吸引人,所以我寄去了简历并获得了面试机会.在面试之间,我和其主要的程序员们在咨询电话中聊了聊,最后他们给我出了一套测试题,其中有一道很耐人寻味. 找出以下代码的错误之处: <?function baz($y $z) { $x = new Array(); $x[sales] = 60; $x[profit]

  • 10条建议帮助你创建更好的jQuery插件

    本文总结了帮助你创建更好jQuery插件的10条建议.分享给大家供大家参考.具体说明如下: 在开发过很多 jQuery 插件以后,我慢慢的摸索出了一套开发jQuery插件比较标准的结构和模式.这样我就可以 copy & paste 大部分的代码结构,只要专注最主要的逻辑代码就行了.使用相同的设计模式和架构也让修复bug或者二次开发更容易.一套经过验证的架构可以保证我的插件不出大的问题,不论插件简单还是复杂.我在这里分享10条我总结的经验. 1. 把你的代码全部放在闭包里面 这是我用的最多的一条.

  • 很受用的Web创业的10条戒律

    很受用的Web创业的10条戒律建议大家都看下1.收缩:专注于一个尽可能小的可能存在的难题,而你又能够解决这个难题.不要想着什么都做,贪多嚼不烂,搞不好就成了模仿者.小可以变大,船小好调头,小可以带给你很多优势,缝隙市场可以变成一个大市场.不要试图把1亿上网用户都当成你的用户,没用,能真正解决一部分用户的一部分需求,就足够你玩儿的. 2.差异:要记住很多人都在做着跟你一样的事情,而其中一个是Google.在这个市场上,专才比通才有用.不一定要做多么领先的事情,寻常的事情你同样可以做得跟别人不一样,

随机推荐