亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Django 2.0版本的新特性搶先看!

 更新時間:2018年01月05日 11:44:13   作者:劉江-Python-Django  
12 月 2 日,Python Web 開發(fā)框架 Django 官網發(fā)文宣布推送 Django 2.0 版。在 Django 2.0 的發(fā)布說明中,最大吸引注意的內容就是兼容性。,下面這篇文章主要給大家介紹了關于Django 2.0版本的新特性的相關資料,需要的朋友可以參考下。

前言

2017年12月2日,Django官方發(fā)布了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()方法的語法更簡單了。

例如以前的:

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

可以寫作:

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

新語法支持強制定義參數類型。例子中只接收整數型年份參數,不再接收字符串類型,同時“10000”年也是合法的(雖然是5位數字),而不像先前正則里只能接收4位數字。

以前版本的django.conf.urls.url()方法變成了django.urls.re_path() ,但為了向后兼容,舊的依然保留,而不是立刻廢棄。django.conf.urls.include()方法現(xiàn)在可以從django.urls導入,也就是你可以使用from django.urls import include, path, re_path。

2.admin后臺對移動端更加友好

Django最受大家歡迎的admin后臺,具有響應式特性,支持主流的移動設備。

3.Window 表達式

新的Window表達式允許為查詢集添加一個OVER從句。

4.小特性

django.contrib.admin后臺

新的ModelAdmin.autocomplete_fields屬性和ModelAdmin.get_autocomplete_fields()方法現(xiàn)在可以在外鍵和多對多字段上使用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現(xiàn)在是可讀可編輯的;
  • 允許在GDAL的內部虛擬文件系統(tǒng)中創(chuàng)建GDALRaster對象;
  • 新的GDALBand.color_interp()方法返回波段的顏色說明。

django.contrib.postgres數據庫

  • ArrayAgg新增distinct參數;
  • 新的RandomUUID函數;
  • django.contrib.postgres.indexes.GinIndex現(xiàn)在支持fastupdate和gin_pending_list_limit參數;
  • 新的GistIndex類允許在數據庫中創(chuàng)建GiST索引;
  • inspectdb現(xiàn)在可以內省JSONField和RangeFields。

django.contrib.sitemaps站點地圖

  • 為GenericSitemap構造器增加protocol參數;

Cache緩存

  • cache.set_many()現(xiàn)在返回一個列表,包含了插入失敗的鍵值;

File Storage文件存儲

  • File.open()現(xiàn)在可以用于上下文管理器,例如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現(xiàn)在將MySQL的無符號整數視作PositiveIntegerField或者PositiveSmallIntegerField;
  • 新增makemessages --add-location選項;
  • loaddata現(xiàn)在可以從標準輸入讀入;
  • 新增diffsettings --output選項;

Migrations遷移

  • 新增squashmigrations --squashed-name選項;

Models模型

  • 新增StrIndex數據庫函數;
  • 對于Oracle數據庫,AutoField和BigAutoField現(xiàn)在會生成identity列;
  • QuerySet.iterator()新增chunk_size參數;
  • QuerySet.earliest() 、QuerySet.latest()Meta.get_latest_by現(xiàn)在可以根據一些字段進行排序;
  • 增加ExtractQuarter方法,用于DateField和DateTimeField;
  • 新增TruncQuarter方法用于截取DateField和DateTimeField到季度的第一天;
  • 為基于類的索引添加db_tablespace參數;
  • QuerySet.select_for_update()增加of參數,但只支持PostgreSQL和Oracle數據庫;
  • QuerySet.in_bulk()新增field_name參數;
  • CursorWrapper.callproc()現(xiàn)在接收可選的字典類型關鍵字參數;
  • QuerySet.values_list()新增named參數,用于獲取命名的元組結果;
  • 新的FilteredRelation類允許為查詢集增加一個ON從句;

Pagination分頁

  • 增加Paginator.get_page() ,可以處理各種非法頁面參數,防止異常;

Requests and Responses請求和響應

  • 現(xiàn)在,runserver服務器支持HTTP 1.1;

Templates模版

  • 為了提高Engine.get_default()在第三方模塊的用途,現(xiàn)在它將返回配置在TEMPLATES中的多個DjangoTemplates引擎中的第一個,而不是彈出ImproperlyConfigured錯誤;
  • 自定義模版標簽現(xiàn)在接收強制關鍵字參數;

Tests測試

  • 為LiveServerTestCase添加多線程支持;

Validators驗證器

新的ProhibitNullCharactersValidator不允許CharField及其子類的表單輸入為空;

三、重要的向后不兼容

1. 某些地方刪除對bytestrings的支持

例如,對于reverse() ,現(xiàn)在使用str()代替force_text() 。

2. AbstractUser.last_name的最大長度增加到150

如果你有一個自定義的用戶模型繼承了AbstractUser,你需要生成并應用一個數據庫遷移,使得last_name的最大長度變?yōu)?50。

如果你需要為last_name保持30個字符的限制,可以如下使用自定義表單:

from django.contrib.auth.forms import UserChangeForm
class MyUserChangeForm(UserChangeForm):
 last_name = forms.CharField(max_length=30, required=False)

如果你需要在admin中也保持這個約束,那么可以如下使用UserAdmin.form:

from django.contrib.auth.admin import UserAdmin
from django.contrib.auth.models import User
class MyUserAdmin(UserAdmin):
 form = MyUserChangeForm
admin.site.unregister(User)
admin.site.register(User, MyUserAdmin)

3. QuerySet.reverse()和last()不能用于切片后的查詢集

對切片后的查詢集使用反轉和獲取最近對象的操作將彈出異常,如下所示:

>>> Model.objects.all()[:2].reverse()
Traceback (most recent call last):
...
TypeError: Cannot reverse a query once a slice has been taken.

4. 表單的字段不再接收可選參數作為位置參數

為了防止運行時錯誤,提高可靠性。以前類似下面的參數傳遞方法,現(xiàn)在是錯誤的了:

forms.IntegerField(25, 10)

要這么傳遞:

forms.IntegerField(max_value=25, min_value=10)

5. Index不再接收位置參數

例如下面的用法將導致異常:

models.Index(['headline', '-pub_date'], 'index_name')

要提供參數關鍵字,改寫為:

models.Index(fields=['headline', '-pub_date'], name='index_name')

6. call_command()將驗證它接收的選項

對于使用選項而不是使用parser.add_argument()進行自定義的管理命令,需要添加一個stealth_options屬性,如下所示:

class MyCommand(BaseCommand):
 stealth_options = ('option_name', ...)

7. SQLite現(xiàn)在支持外鍵約束

另外,Django2.0還廢棄和移除了一些方法和屬性。

總結

好像也沒多大變化,不是重度使用者,基本感受不出變化來,該怎么用還是怎么用,^-^!

好了,以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。

相關文章

  • pandas read_excel()和to_excel()函數解析

    pandas read_excel()和to_excel()函數解析

    這篇文章主要介紹了pandas read_excel()和to_excel()函數解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-09-09
  • python3如何獲取子線程中函數返回值

    python3如何獲取子線程中函數返回值

    這篇文章主要介紹了python3如何獲取子線程中函數返回值問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • pyecharts繪制時間輪播圖柱形圖+餅圖+玫瑰圖+折線圖

    pyecharts繪制時間輪播圖柱形圖+餅圖+玫瑰圖+折線圖

    這篇文章主要介紹了pyecharts繪制時間輪播圖柱形圖+餅圖+玫瑰圖+折線圖,文章圍繞主題展開詳細的內容介紹,具有一定的參考價值,感興趣的小伙伴可以參考一下
    2022-06-06
  • python?logging多進程多線程輸出到同一個日志文件的實戰(zhàn)案例

    python?logging多進程多線程輸出到同一個日志文件的實戰(zhàn)案例

    這篇文章主要介紹了python?logging多進程多線程輸出到同一個日志文件的實戰(zhàn)案例,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-02-02
  • Python偏函數介紹及用法舉例詳解

    Python偏函數介紹及用法舉例詳解

    偏函數(Partial function)是Python的functools模塊提供的一個很有用的功能,它允許我們通過固定部分參數或關鍵字參數來創(chuàng)建一個新的函數,這篇文章主要給大家介紹了關于Python偏函數介紹及用法舉例詳解的相關資料,需要的朋友可以參考下
    2024-04-04
  • 快速進修Python指南之自定義模塊常用模塊

    快速進修Python指南之自定義模塊常用模塊

    這篇文章主要為大家介紹了Java開發(fā)者如何快速進修Python指南之自定義模塊常用模塊示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-12-12
  • 用Python簡單實現(xiàn)Http服務端

    用Python簡單實現(xiàn)Http服務端

    這篇文章主要為大家介紹了使用Python簡單實現(xiàn)Http服務端示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-07-07
  • Python字符串和正則表達式中的反斜杠(''\'')問題詳解

    Python字符串和正則表達式中的反斜杠(''\'')問題詳解

    在本篇文章里小編給大家整理的是關于Python字符串和正則表達式中的反斜杠('\')問題以及相關知識點,有需要的朋友們可以學習下。
    2019-09-09
  • Python 執(zhí)行矩陣與線性代數運算

    Python 執(zhí)行矩陣與線性代數運算

    這篇文章主要介紹了Python 執(zhí)行矩陣與線性代數運算,文中講解非常細致,代碼幫助大家更好的理解和學習,感興趣的朋友可以了解下
    2020-08-08
  • scrapy數據存儲在mysql數據庫的兩種方式(同步和異步)

    scrapy數據存儲在mysql數據庫的兩種方式(同步和異步)

    這篇文章主要介紹了scrapy數據存儲在mysql數據庫的兩種方式(同步和異步),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-02-02

最新評論