鍍金池/ 教程/ Python/ Django異常
點擊劫持保護(hù)
安全問題歸檔
Model 類參考
將遺留數(shù)據(jù)庫整合到Django
關(guān)聯(lián)對象參考
內(nèi)建基于類的視圖的API
聚合
Django 中的用戶認(rèn)證
django.contrib.humanize
Django管理文檔生成器
分頁
使用Django輸出CSV
加密簽名
文件儲存API
安全
Django中的測試
國際化和本地化
為Django編寫首個補丁
條件表達(dá)式
日志
模型元選項
部署靜態(tài)文件
執(zhí)行查詢
使用Django認(rèn)證系統(tǒng)
基于類的視圖
中間件
編寫自定義的django-admin命令
Django 的設(shè)置
格式本地化
數(shù)據(jù)庫訪問優(yōu)化
錯誤報告
基于類的內(nèi)建通用視圖
編寫自定義存儲系統(tǒng)
編寫你的第一個 Django 程序 第3部分
編寫數(shù)據(jù)庫遷移
使用表單
編寫你的第一個 Django 程序 第2部分
編寫你的第一個 Django 程序 第1部分
如何使用會話
系統(tǒng)檢查框架
新手入門
信號
編寫視圖
如何使用WSGI 部署
編寫你的第一個Django應(yīng)用,第6部分
常見的網(wǎng)站應(yīng)用工具
Widgets
內(nèi)建的視圖
模型實例參考
視圖層
Django中的密碼管理
高級教程:如何編寫可重用的應(yīng)用
國際化和本地化
"本地特色"附加功能
TemplateResponse 和 SimpleTemplateResponse
模式編輯器
文件上傳
快速安裝指南
部署 Django
表單 API
表單素材 ( <code>Media</code> 類)
管理文件
其它核心功能
查找 API 參考
表單
Admin
數(shù)據(jù)庫函數(shù)
自定義查找
使用基于類的視圖處理表單
管理操作
開發(fā)過程
編寫你的第一個Django應(yīng)用,第5部分
進(jìn)行原始的sql查詢
模型層
多數(shù)據(jù)庫
編寫你的第一個 Django 程序 第4部分
Django安全
Django 初探
Django異常
重定向應(yīng)用
按需內(nèi)容處理
管理器
視圖裝飾器
驗證器
使用Django輸出PDF
File對象
Django 的快捷函數(shù)
基于類的通用視圖 —— 索引
為模型提供初始數(shù)據(jù)
模板層
URL調(diào)度器
中間件
模型

Django異常

DJango會拋出一些它自己的異常,以及Python的標(biāo)準(zhǔn)異常。

Django核心異常

Django核心異常類定義在django.core.exceptions中。

ObjectDoesNotExist

exception ObjectDoesNotExist[source]

DoesNotExist異常的基類;對ObjectDoesNotExisttry/except會為所有模型捕獲到所有DoesNotExist 異常。

ObjectDoesNotExistDoesNotExist的更多信息請見 get()。

FieldDoesNotExist

exception FieldDoesNotExist[source]

當(dāng)被請求的字段在模型或模型的父類中不存在時,FieldDoesNotExist異常由模型的 _meta.get_field()方法拋出。

Changed in Django 1.8:

之前的版本中,異常只在django.db.models.fields中定義,并不是公共API的一部分。

MultipleObjectsReturned

exception MultipleObjectsReturned[source]

MultipleObjectsReturned異常由查詢產(chǎn)生,當(dāng)預(yù)期只有一個對象,但是有多個對象返回的時候。這個異常的一個基礎(chǔ)版本在django.core.exceptions中提供。每個模型類都包含一個它的子類版本,它可以用于定義返回多個對象的特定的對象類型。

詳見get()。

SuspiciousOperation

exception SuspiciousOperation[source]

當(dāng)用戶進(jìn)行的操作在安全方面可疑的時候,拋出SuspiciousOperation異常,例如篡改會話cookie。SuspiciousOperation的子類包括:

  • DisallowedHost
  • DisallowedModelAdminLookup
  • DisallowedModelAdminToField
  • DisallowedRedirect
  • InvalidSessionKey
  • SuspiciousFileOperation
  • SuspiciousMultipartForm
  • SuspiciousSession

如果SuspiciousOperation異常到達(dá)了WSGI處理器層,它會在Error層記錄,并導(dǎo)致HttpResponseBadRequest異常。 詳見日志文檔。

PermissionDenied

exception PermissionDenied[source]

PermissionDenied異常當(dāng)用戶不被允許來執(zhí)行請求的操作時產(chǎn)生。

ViewDoesNotExist

exception ViewDoesNotExist[source]

當(dāng)所請求的視圖不存在時,ViewDoesNotExist 異常由 django.core.urlresolvers產(chǎn)生。

MiddlewareNotUsed

exception MiddlewareNotUsed[source]

當(dāng)中間件沒有在服務(wù)器配置中出現(xiàn)時,產(chǎn)生MiddlewareNotUsed異常。

ImproperlyConfigured

exception ImproperlyConfigured[source]

DJango配置不當(dāng)時產(chǎn)生ImproperlyConfigured異常 -- 例如,settings.py中的值不正確或者不可解析。

FieldError

exception FieldError[source]

FieldError異常當(dāng)模型字段上出現(xiàn)問題時產(chǎn)生。它會由以下原因造成:

  • 模型中的字段與抽象基類中相同名稱的字段沖突。
  • 排序造成了一個死循環(huán)。
  • 關(guān)鍵詞不能由過濾器參數(shù)解析。
  • 字段不能由查詢參數(shù)中的關(guān)鍵詞決定。
  • 連接(join)不能在指定對象上使用。
  • 字段名稱不可用。
  • 查詢包含了無效的 order_by參數(shù)。

ValidationError

exception ValidationError[source]

當(dāng)表單或模型字段驗證失敗時拋出ValidationError異常。關(guān)于驗證的更多信息,請見表單字段驗證, 模型字段驗證驗證器參考

NON_FIELD_ERRORS

NON_FIELD_ERRORS

在表單或者模型中不屬于特定字段的ValidationError 被歸類為NON_FIELD_ERRORS。This constant is used as a key in dictionaries that otherwise map fields to their respective list of errors.

URL解析器異常

URL解析器異常定義在django.core.urlresolvers中。

Resolver404

exception Resolver404[source]

當(dāng)向 resolve() 傳遞的路徑不映射到視圖的時候,Resolver404異常由django.core.urlresolvers.resolve()產(chǎn)生。 它是 django.http.Http404的子類。

NoReverseMatch

exception NoReverseMatch[source]

當(dāng)你的URLconf中的一個匹配的URL不能基于提供的參數(shù)識別時,NoReverseMatch 異常由 django.core.urlresolvers 產(chǎn)生。

Database Exceptions

數(shù)據(jù)庫異常由django.db導(dǎo)入。

Django封裝了標(biāo)準(zhǔn)的數(shù)據(jù)庫異常,以便確保你的DJango代碼擁有這些類的通用實現(xiàn)。

exception Error

exception InterfaceError

exception DatabaseError

exception DataError

exception OperationalError

exception IntegrityError

exception InternalError

exception ProgrammingError

exception NotSupportedError

Django數(shù)據(jù)庫異常的包裝器的行為和底層的數(shù)據(jù)庫異常一樣。詳見PEP 249,Python 數(shù)據(jù)庫 API 說明 v2.0。

按照 PEP 3134__cause__屬性會在原生(底層)的數(shù)據(jù)庫異常中設(shè)置,允許訪問所提供的任何附加信息。(注意這一屬性在Python 2和 3下面都可用,雖然 PEP 3134通常只用于Python 3。)

exception models.``ProtectedError

使用django.db.models.PROTECT時,拋出異常來阻止所引用對象的刪除。models.ProtectedError is a subclass of IntegrityError.

Http異常

HTTP異常由django.http導(dǎo)入。

UnreadablePostError

exception UnreadablePostError

用戶取消上傳時拋出UnreadablePostError異常。

事務(wù)異常

事務(wù)異常定義在django.db.transaction中。

TransactionManagementError

exception TransactionManagementError[source]

對于數(shù)據(jù)庫事務(wù)相關(guān)的任何問題,拋出TransactionManagementError異常。

測試框架異常

由DJango django.test 包提供的異常。

RedirectCycleError

exception client.``RedirectCycleError

New in Django 1.8.

當(dāng)測試客戶端檢測到重定向的循環(huán)或者過長的鏈時,拋出RedirectCycleError異常。

Python異常

Django在適當(dāng)?shù)臅r候也會拋出Python的內(nèi)建異常。進(jìn)一步的信息請見內(nèi)建的異常的Python文檔。

譯者:Django 文檔協(xié)作翻譯小組,原文:Overview。

本文以 CC BY-NC-SA 3.0 協(xié)議發(fā)布,轉(zhuǎn)載請保留作者署名和文章出處。

Django 文檔協(xié)作翻譯小組人手緊缺,有興趣的朋友可以加入我們,完全公益性質(zhì)。交流群:467338606。

上一篇:新手入門下一篇:安全