最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

前言

2017年12月2日,Django官方發(fā)布了2.0版本,成為多年來(lái)的第一次大版本提升,那么2.0對(duì)廣大Django使用者有哪些變化和需要注意的地方呢?

一、Python兼容性

Django 2.0支持Python3.4、3.5和3.6。Django官方強(qiáng)烈推薦每個(gè)系列的最新版本。

最重要的是Django 2.0不再支持Python2!

Django 1.11.x是支持Python2.7的最后版本。

二、2.0新特性

1.簡(jiǎn)化了URL路由語(yǔ)法

django.urls.path()方法的語(yǔ)法更簡(jiǎn)單了。

例如以前的:

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

可以寫作:

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

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

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

2.admin后臺(tái)對(duì)移動(dòng)端更加友好

Django最受大家歡迎的admin后臺(tái),具有響應(yīng)式特性,支持主流的移動(dòng)設(shè)備。

3.Window 表達(dá)式

新的Window表達(dá)式允許為查詢集添加一個(gè)OVER從句。

4.小特性

django.contrib.admin后臺(tái)

新的ModelAdmin.autocomplete_fields屬性和ModelAdmin.get_autocomplete_fields()方法現(xiàn)在可以在外鍵和多對(duì)多字段上使用Select2搜索框。

django.contrib.auth用戶認(rèn)證

PBKDF2密碼哈希默認(rèn)的迭代次數(shù)從36000增加到100000。

django.contrib.gis地理框架

  • 為AsGeoJSON、GeoHash和GeoHash方法,isvalid和distance查詢?cè)黾覯ySQL支持;
  • 添加Azimuth和LineLocatePoint方法,支持PostGIS和SpatiaLite;
  • 所有從GeoJSON導(dǎo)入的GEOSGeometry擁有SRID集合;
  • 添加OSMWidget.default_zoom屬性,用于自定義地圖的默認(rèn)縮放級(jí)別;
  • metadata現(xiàn)在是可讀可編輯的;
  • 允許在GDAL的內(nèi)部虛擬文件系統(tǒng)中創(chuàng)建GDALRaster對(duì)象;
  • 新的GDALBand.color_interp()方法返回波段的顏色說(shuō)明。

django.contrib.postgres數(shù)據(jù)庫(kù)

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

django.contrib.sitemaps站點(diǎn)地圖

  • 為GenericSitemap構(gòu)造器增加protocol參數(shù);

Cache緩存

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

File Storage文件存儲(chǔ)

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

Forms表單

  • SplitDateTimeWidget和SplitHiddenDateTimeWidget增加date_attrs與time_attrs參數(shù),用于為DateInput與TimeInput指定HTML屬性;
  • 新的Form.errors.get_json_data()方法返回字典類型的表單錯(cuò)誤,以適應(yīng)JSON類型x響應(yīng);

Generic Views通用視圖

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

Management Commands管理命令

  • inspectdb現(xiàn)在將MySQL的無(wú)符號(hào)整數(shù)視作PositiveIntegerField或者PositiveSmallIntegerField;
  • 新增makemessages --add-location選項(xiàng);
  • loaddata現(xiàn)在可以從標(biāo)準(zhǔn)輸入讀入;
  • 新增diffsettings --output選項(xiàng);

Migrations遷移

  • 新增squashmigrations --squashed-name選項(xiàng);

Models模型

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

Pagination分頁(yè)

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

Requests and Responses請(qǐng)求和響應(yīng)

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

Templates模版

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

Tests測(cè)試

  • 為L(zhǎng)iveServerTestCase添加多線程支持;

Validators驗(yàn)證器

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

三、重要的向后不兼容

1. 某些地方刪除對(duì)bytestrings的支持

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

2. AbstractUser.last_name的最大長(zhǎng)度增加到150

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

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

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

如果你需要在admin中也保持這個(gè)約束,那么可以如下使用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()不能用于切片后的查詢集

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

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

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

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

forms.IntegerField(25, 10)

要這么傳遞:

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

5. Index不再接收位置參數(shù)

例如下面的用法將導(dǎo)致異常:

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

要提供參數(shù)關(guān)鍵字,改寫為:

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

6. call_command()將驗(yàn)證它接收的選項(xiàng)

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

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

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

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

總結(jié)

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

好了,以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,如果有疑問(wèn)大家可以留言交流,謝謝大家對(duì)腳本之家的支持。

相關(guān)文章

  • python導(dǎo)入其他目錄下模塊的四種情況

    python導(dǎo)入其他目錄下模塊的四種情況

    在python工程中常常需要使用import引入自己編寫的其他模塊,但其它模塊有時(shí)不在同一個(gè)文件夾下,下面這篇文章主要給大家介紹了關(guān)于python導(dǎo)入其他目錄下模塊的四種情況,需要的朋友可以參考下
    2022-12-12
  • python 2.7 檢測(cè)一個(gè)網(wǎng)頁(yè)是否能正常訪問(wèn)的方法

    python 2.7 檢測(cè)一個(gè)網(wǎng)頁(yè)是否能正常訪問(wèn)的方法

    今天小編就為大家分享一篇python 2.7 檢測(cè)一個(gè)網(wǎng)頁(yè)是否能正常訪問(wèn)的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-12-12
  • python安裝scipy的方法步驟

    python安裝scipy的方法步驟

    在本篇文章里小編給各位分享了關(guān)于python怎么安裝scipy的具體方法和實(shí)例代碼,需要的朋友們學(xué)習(xí)下。
    2019-06-06
  • Python實(shí)現(xiàn)獲取郵箱內(nèi)容并解析的方法示例

    Python實(shí)現(xiàn)獲取郵箱內(nèi)容并解析的方法示例

    這篇文章主要介紹了Python實(shí)現(xiàn)獲取郵箱內(nèi)容并解析的方法,結(jié)合完整實(shí)例形式分析了Python登陸pop3服務(wù)器并解析獲取郵箱內(nèi)容相關(guān)操作技巧,需要的朋友可以參考下
    2018-06-06
  • 利用Python+Opencv實(shí)現(xiàn)車牌自動(dòng)識(shí)別完整代碼

    利用Python+Opencv實(shí)現(xiàn)車牌自動(dòng)識(shí)別完整代碼

    這篇文章主要介紹了如何使用Python和OpenCV進(jìn)行車牌識(shí)別,包括圖像預(yù)處理、車牌定位、分割和模板匹配等步驟,通過(guò)實(shí)戰(zhàn)項(xiàng)目,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2025-04-04
  • pytorch在fintune時(shí)將sequential中的層輸出方法,以vgg為例

    pytorch在fintune時(shí)將sequential中的層輸出方法,以vgg為例

    今天小編就為大家分享一篇pytorch在fintune時(shí)將sequential中的層輸出方法,以vgg為例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-08-08
  • 數(shù)據(jù)庫(kù)連接池DBUtils的安裝使用方法

    數(shù)據(jù)庫(kù)連接池DBUtils的安裝使用方法

    DBUtils是Python的一個(gè)用于實(shí)現(xiàn)數(shù)據(jù)庫(kù)連接池的模塊,這篇文章主要介紹了數(shù)據(jù)庫(kù)連接池DBUtils的安裝使用方法,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2025-03-03
  • matplotlib之pyplot模塊添加文本、注解(text和annotate)

    matplotlib之pyplot模塊添加文本、注解(text和annotate)

    matplotlib是python最著名的繪圖庫(kù),它提供了一整套和matlab相似的命令A(yù)PI,十分適合交互式地行制圖,下面這篇文章主要給大家介紹了關(guān)于matplotlib之pyplot模塊添加文本、注解(text和annotate)的相關(guān)資料,需要的朋友可以參考下
    2022-05-05
  • pandas之關(guān)于DataFrame數(shù)據(jù)類型超好用的方法

    pandas之關(guān)于DataFrame數(shù)據(jù)類型超好用的方法

    這篇文章主要介紹了pandas之關(guān)于DataFrame數(shù)據(jù)類型超好用的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • 如何基于python操作json文件獲取內(nèi)容

    如何基于python操作json文件獲取內(nèi)容

    這篇文章主要介紹了如何基于python操作json文件獲取內(nèi)容,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-12-12

最新評(píng)論

天等县| 武汉市| 尚志市| 普格县| 海宁市| 龙陵县| 大渡口区| 永德县| 中卫市| 得荣县| 丹棱县| 蓬莱市| 灵石县| 香港 | 宁夏| 漾濞| 长葛市| 苏州市| 上高县| 称多县| 二连浩特市| 蛟河市| 双柏县| 庄浪县| 朝阳市| 曲麻莱县| 香河县| 大丰市| 伊金霍洛旗| 友谊县| 屏山县| 明水县| 平顶山市| 平阳县| 额尔古纳市| 金溪县| 虹口区| 囊谦县| 青阳县| 松桃| 同心县|