Django 2.0 的新特性

来源:互联网 发布:vue.js验证手机号码 编辑:程序博客网 时间:2024/06/06 04:04

1、URL编写进行了简化

新django.urls.path()功能允许更简单,更可读的URL路由语法。例如,以前的Django发行版中的这个例子:

url(r'^articles/(?P<year>[0-9]{4})/$', views.year_archive),

从Django2.0开始,你可以这么写了:

path('articles/<int:year>/', views.year_archive),

新的语法支持URL参数的类型强制.在上面的例子中,视图将接收到year参数的类型是整型,而不是一个字符串.更多新语法可以查看url调度

2、管理后台样式自适应,支持移动端浏览器了

以前admin在移动端是显示不完整的,需要左右拉动才能浏览完整,像这样

这里写图片描述

Django2.0的admin在移动端下会自动换行显示,像这样
这里写图片描述

除此之外,首次启动的欢迎页面也重做了,感觉高大上了很多
这里写图片描述

3、Window表达式
新的Window表达式允许位查询集添加一个OVER自子句,可以在表达式中使用窗口函数和聚合函数.

窗口函数:
Django2.0新增功能,在窗口表达式中,有许多函数用于计算元素的秩或某些行的Ntile。

4、小特性
django.contrib.admin 后台:

  • 新的ModelAdmin.autocomplete_fields属性和ModelAdmin.get_autocomplete_fields()方法
  • 现在可以在外键和多对多字段上使用Select2搜索框。

django.contrib.auth用户认证:

  • PBKDF2密码哈希默认的迭代次数从36000增加到100000。

django.contrib.gis地理框架:

  • 为AsGeoJSON、GeoHash和GeoHash方法,isvalid和distance查询增加MySQL支持;
  • 添加Azimuth和LineLocatePoint方法,支持PostGIS和SpatiaLite;
  • 所有从GeoJSON导入的GEOSGeometry拥有SRID集合;
  • 添加OSMWidget.default_zoom属性,用于自定义地图的默认缩放级别;
  • metadata现在是可读可编辑的;
  • 允许在GDAL的内部虚拟文件系统中创建GDALRaster对象;
  • 新的GDALBand.color_interp()方法返回波段的颜色说明。

django.contrib.postgres数据库:

  • ArrayAgg新增distinct参数;
  • 新的RandomUUID函数;
  • django.contrib.postgres.indexes.GinIndex现在支持fastupdate和gin_pending_list_limit参数;
  • 新的GistIndex类允许在数据库中创建GiST索引;
  • inspectdb现在可以内省JSONField和RangeFields。

django.contrib.sitemaps站点地图:

  • 为GenericSitemap构造器增加protocol参数;

Cache缓存:

  • cache.set_many()现在返回一个列表,包含了插入失败的键值;

File Storage文件存储:

  • File.open()现在可以用于上下文管理器,例如with file.open() as f:;

Forms表单:

  • SplitDateTimeWidget和SplitHiddenDateTimeWidget增加date_attrs与time_attrs参数,用于为DateInput与TimeInput指定HTML属性;
  • 新的Form.errors.get_json_data()方法返回字典类型的表单错误,以适应JSON类型x响应;

Generic Views通用视图:

  • 新的ContextMixin.extra_context属性允许在View.as_view()中添加上下文;

Management Commands管理命令:

  • inspectdb现在将MySQL的无符号整数视作PositiveIntegerField或者PositiveSmallIntegerField;
  • 新增makemessages –add-location选项;
  • loaddata现在可以从标准输入读入;
  • 新增diffsettings –output选项;

Migrations迁移:

  • 新增squashmigrations –squashed-name选项;

Models模型:

  • 新增StrIndex数据库函数;
  • 对于Oracle数据库,AutoField和BigAutoField现在会生成identity列;
  • QuerySet.iterator()新增chunk_size参数;
  • QuerySet.earliest()、QuerySet.latest()和Meta.get_latest_by现在可以根据一些字段进行排序;
  • 增加ExtractQuarter方法,用于DateField和DateTimeField;
  • 新增TruncQuarter方法用于截取DateField和DateTimeField到季度的第一天;
  • 为基于类的索引添加db_tablespace参数;
  • 为QuerySet.select_for_update()增加of参数,但只支持PostgreSQL和Oracle数据库;
  • QuerySet.in_bulk()新增field_name参数;
  • CursorWrapper.callproc()现在接收可选的字典类型关键字参数;
  • QuerySet.values_list()新增named参数,用于获取命名的元组结果;
  • 新的FilteredRelation类允许为查询集增加一个ON从句;

Pagination分页:

  • 增加Paginator.get_page(),可以处理各种非法页面参数,防止异常;

Requests and Responses请求和响应:

  • 现在,runserver服务器支持HTTP 1.1;

Templates模版:

  • 为了提高Engine.get_default()在第三方模块的用途,现在它将返回配置在TEMPLATES中的多个DjangoTemplates引擎中的第一个,而不是弹出ImproperlyConfigured错误;

  • 自定义模版标签现在接收强制关键字参数;

Tests测试:

  • 为LiveServerTestCase添加多线程支持;

Validators验证器:

  • 新的ProhibitNullCharactersValidator不允许CharField及其子类的表单输入为空;

内容出自:
http://baijiahao.baidu.com/s?id=1580572642579162427&wfr=spider&for=pc
https://www.cnblogs.com/feixuelove1009/p/7989720.html
https://docs.djangoproject.com/en/2.0/releases/2.0/#whats-new-2-0

阅读全文
'); })();
0 0
原创粉丝点击
热门IT博客
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 房产镇江 新房出售 购买新房注意事项 买房子 石家庄市房产网 奉化房产 武汉亿房网二手房 360房产 大连学区划分 威海房产 亿房网 武汉 0551房产 房地产信息网论坛 德阳房产 二手楼房 个人二手房出售 滨州购房网 买楼 二手房交易网 二手房求购 房天下搜房网二手房 卖房 房产查询 房地产 二手楼 房地产价格 宁晋房产 购房须知 平度房产 搜房帮 大连房地产 搜房网大连 大连房产 兰州房产 大连楼盘 武汉房 选房子注意事项 楼盘 售楼处 焦点房产网 商住两用房