欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

Django2.0版本有哪些特性-創(chuàng)新互聯(lián)

小編給大家分享一下Django 2.0版本有哪些特性,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

創(chuàng)新互聯(lián)建站于2013年成立,先為市南等服務(wù)建站,市南等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為市南企業(yè)網(wǎng)站制作PC+手機+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。

一、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),

新語法支持強制定義參數(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后臺對移動端更加友好

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

3.Window 表達(dá)式

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

4.小特性

django.contrib.admin后臺

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

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

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

django.contrib.gis地理框架

  • 為AsGeoJSON、GeoHash和GeoHash方法,isvalid和distance查詢增加MySQL支持;

  • 添加Azimuth和LineLocatePoint方法,支持PostGIS和SpatiaLite;

  • 所有從GeoJSON導(dǎo)入的GEOSGeometry擁有SRID集合;

  • 添加OSMWidget.default_zoom屬性,用于自定義地圖的默認(rèn)縮放級別;

  • metadata現(xiàn)在是可讀可編輯的;

  • 允許在GDAL的內(nèi)部虛擬文件系統(tǒng)中創(chuàng)建GDALRaster對象;

  • 新的GDALBand.color_interp()方法返回波段的顏色說明。

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

  • ArrayAgg新增distinct參數(shù);

  • 新的RandomUUID函數(shù);

  • django.contrib.postgres.indexes.GinIndex現(xiàn)在支持fastupdate和gin_pending_list_limit參數(shù);

  • 新的GistIndex類允許在數(shù)據(jù)庫中創(chuàng)建GiST索引;

  • inspectdb現(xiàn)在可以內(nèi)省JSONField和RangeFields。

django.contrib.sitemaps站點地圖

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

Cache緩存

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

File Storage文件存儲

  • 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()方法返回字典類型的表單錯誤,以適應(yīng)JSON類型x響應(yīng);

Generic Views通用視圖

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

Management Commands管理命令

  • inspectdb現(xiàn)在將MySQL的無符號整數(shù)視作PositiveIntegerField或者PositiveSmallIntegerField;

  • 新增makemessages --add-location選項;

  • loaddata現(xiàn)在可以從標(biāo)準(zhǔn)輸入讀入;

  • 新增diffsettings --output選項;

Migrations遷移

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

Models模型

  • 新增StrIndex數(shù)據(jù)庫函數(shù);

  • 對于Oracle數(shù)據(jù)庫,AutoField和BigAutoField現(xiàn)在會生成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ù)庫;

  • QuerySet.in_bulk()新增field_name參數(shù);

  • CursorWrapper.callproc()現(xiàn)在接收可選的字典類型關(guān)鍵字參數(shù);

  • QuerySet.values_list()新增named參數(shù),用于獲取命名的元組結(jié)果;

  • 新的FilteredRelation類允許為查詢集增加一個ON從句;

Pagination分頁

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

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

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

Templates模版

  • 為了提高Engine.get_default()在第三方模塊的用途,現(xiàn)在它將返回配置在TEMPLATES中的多個DjangoTemplates引擎中的第一個,而不是彈出ImproperlyConfigured錯誤;

  • 自定義模版標(biāo)簽現(xiàn)在接收強制關(guān)鍵字參數(shù);

Tests測試

  • 為LiveServerTestCase添加多線程支持;

Validators驗證器

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

三、重要的向后不兼容

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

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

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

如果你有一個自定義的用戶模型繼承了AbstractUser,你需要生成并應(yīng)用一個數(shù)據(jù)庫遷移,使得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()不能用于切片后的查詢集

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

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

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

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

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()將驗證它接收的選項

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

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

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

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

以上是“Django 2.0版本有哪些特性”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注創(chuàng)新互聯(lián)成都網(wǎng)站設(shè)計公司行業(yè)資訊頻道!

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。

當(dāng)前文章:Django2.0版本有哪些特性-創(chuàng)新互聯(lián)
分享網(wǎng)址:http://chinadenli.net/article18/hgpdp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站策劃ChatGPT搜索引擎優(yōu)化網(wǎng)站設(shè)計網(wǎng)頁設(shè)計公司網(wǎng)站制作

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

小程序開發(fā)