91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Django2.2版本都有哪些新特性

發布時間:2020-08-25 11:07:00 來源:億速云 閱讀:167 作者:Leah 欄目:編程語言

Django2.2版本都有哪些新特性?很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。

2019年4月1日,Django官方如期發布了2.2版本,這是一個LST版本,將持續維護和安全更新到2022年4月,也就是說至少有3年的生命周期,所以這是一個可以長期使用的版本。上一個LST版本Django1.11將在2020年4月停止維護。

在這里不得不吐糟一下Django的版本升級路線,版本號提升得太快了!!2.2之后就是3.0,并且3.0會在2019年12月份正式發布,這給一些初學者或者小公司帶來太多的困惑,不知道該學或者該用哪個版本了。個人建議Python2.7沒得選,只能使用Django1.11版本。Python3.x的,直接選最新版本或者最近的LST版本,差別不大。

2.2版本依然包含了一些新特新,和一些對前期版本不兼容的說明。

Python兼容性

Django2.2支持Python3.5、3.6和3.7。

新特性

約束

新的CheckConstraint和UniqueConstraint類現在開始支持自定義數據庫約束,通過使用Meta.constraints選項。

小特性

1. django.contrib.admin

為TabularInline添加了列頭的CSS類

2. django.contrib.auth

HttpRequest將被作為第一個位置參數傳遞給RemoteUserBackend.configure_user()方法。

3. django.contrib.gis

Envelope函數開始支持Oracle。 coveredby和covers查詢現在支持SpatiaLite 不再支持GDAL1.9和1.10

4. django.contrib.staticfiles

為collectstatic --ignore選項添加路由,以支持類似/vendor/*.js的模式

5. Database backends

為SQLite上的QuerySet.iterator()添加輸出流

6. Generic Views

新的View.setup鉤子將在調用dispatch()方法之前初始化視圖屬性。

7. Internationalization

現在支持亞美尼亞語言

8. Management Commands

新的選項--force-color強制對輸出添加顏色inspectdb命令將為PostgreSQL數據庫的外部表創建模型inspectdb --include-views將為Oracle和PostgreSQL的物化視圖創建模型inspectdb --include-partitions將為PostgreSQL的分區表創建模型。在Oracle和PostgreSQL上inspectdb命令將內省DurationField字段類型,在SQLite上內省AutoField字段類型。在Oracle中,dbshell將被rlwrap包裝起來。rlwrap提供一個命令歷史記錄和鍵盤輸入編輯功能。新的makemigrations --no-header選項可以在生成migration文件的時候避免寫入頭部注釋。runserver命令現在可以使用Watchman插件,用于提高監視大量修改文件的性能。并且不再支持pyinotify插件。

9. Migrations

新的migrate --plan選項將打印出遷移操作的列表NoneType現在可以在migrations中序列化了現在可以為migrations注冊自定義的序列化器了

10. Models

為PostgreSQL ,新增Index.opclasses類通過Index.condition,支持分區索引新增NullIf和Reverse數據庫函數為QuerySet.bulk_create()函數新增ignore_conflicts參數,此參數如果設置為True,將忽略在添加數據行時的錯誤。新增ExtractIsoYear函數新增QuerySet.bulk_update()方法,提高批量更新指定字段的效率對于Model.save()、QuerySet.update()和Model.delete()等單獨的操作,Django將不再啟動一個事務,這有助于提高自動提交數據庫操作的性能SQLite現在支持StdDev和Variance函數Aggregate類現在開始支持DISTINCT聚合操作RelatedManager.add()、create()、remove()、set()、get_or_create()、update_or_create() 等方法現在支持多對多關系。SQLite現在要求最低版本是3.8.3mysqlclient現在要求最低版本是1.3.13

11. Requests and Responses

新增HttpRequest.headers,可以快速地訪問請求的頭部信息

12. URLs

新增的ResolverMatch.route屬性保存了匹配的URL模式的路由

13. Validators

MaxValueValidator、MinValueValidator、MinLengthValidator和MaxLengthValidator 現在可以接收一個可調用的limit_value參數值。

2.2版本中向后不兼容的地方

Admin actions的繼承方式發生變化

原來是:

from django.contrib import admin
class BaseAdmin(admin.ModelAdmin):
    actions = ['a']class SubAdmin(BaseAdmin):
    actions = ['b']

在過去,SubAdmin將同時具有'a'和'b'動作,這其實不符合Python繼承語法的,因為actions屬性被重寫了。

現在,Django2.2將上面的做法改變成更符合Python繼承機制,所以要達到上面目的的話,我們需要修改成下面的做法:

class SubAdmin(BaseAdmin):
    actions = BaseAdmin.actions + ['b']

cached_property語法發生改變

在過去,我們都是這么使用alias的:

from django.utils.functional import cached_propertyclass A:
    @cached_property
    def base(self):
        return ...
    alias = base

在Python3.6之后,這可能會導致TypeError,所以現在修改成下面的做法:

from django.utils.functional import cached_propertyimport operatorclass A:
    @cached_property
    def base(self):
        return ...
    alias = property(operator.attrgetter('base'))

總結:2.2其實沒啥新東西!

最后附上Django的版本路線圖和生命周期圖:

Django2.2版本都有哪些新特性Django2.2版本都有哪些新特性Django2.2版本都有哪些新特性

Django的版本號提高得太快我已經無力吐槽了。2.2之后就是3.0,這是幾個意思?

看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

乡宁县| 蓬安县| 太康县| 青阳县| 廊坊市| 汽车| 石渠县| 瑞丽市| 镇平县| 廊坊市| 桃源县| 屯门区| 德兴市| 财经| 古交市| 肇东市| 深泽县| 金秀| 上思县| 平顶山市| 梅河口市| 蓝山县| 英山县| 青州市| 西乌珠穆沁旗| 镇平县| 宁安市| 巴南区| 绥江县| 曲阳县| 塔城市| 白朗县| 云龙县| 荣成市| 尼勒克县| 上饶县| 河曲县| 彰化市| 德庆县| 敦化市| 清新县|