Hướng dẫn về các trường hợp ngoại lệ của Django. Ở đây chúng ta cũng thảo luận về việc giới thiệu và danh sách các ngoại lệ tiêu chuẩn tổng thể cùng với các ví dụ và việc triển khai mã của nó.

Bạn đang xem : django thử ngoại trừ ví dụ

Django Exceptions

Giới thiệu về Ngoại lệ Django

Một ngoại lệ có thể được định nghĩa là một sự kiện sẽ làm lệch quá trình thực hiện bình thường của một chương trình thành một trạng thái bất thường. Các khối thử và khối ngoại lệ trong chiến lược ngoại lệ rất hữu ích trong việc xử lý các ngoại lệ này. Những trường hợp ngoại lệ theo định hướng python này được phân loại sâu rộng rãi. Từ quan điểm django, khung công tác django có một loạt các ngoại lệ riêng của nó. Tất cả các ngoại lệ này được gắn thẻ trong khuôn khổ django được coi là được tạo ra để phù hợp để giải quyết các trường hợp ngoại lệ có thể xảy ra khác nhau được tạo ra trong khuôn khổ django. Những trường hợp ngoại lệ django đã phân loại này được đề cập ngắn gọn bên dưới cùng với trường hợp có thể xảy ra của chúng.

Danh sách ngoại lệ Django tiêu chuẩn

Dưới đây là danh sách các ngoại lệ tiêu chuẩn tổng thể được kích hoạt trong thiết lập Django,

Bắt đầu khóa học phát triển phần mềm miễn phí của bạn

Phát triển web, ngôn ngữ lập trình, Kiểm tra phần mềm & amp; những người khác

AppRegistryNotReady: Có hai trường hợp lỗi này có thể được kích hoạt, Đầu tiên là khi có nỗ lực sử dụng các mô hình được liên kết với thiết lập django trước khi ứng dụng được tải thành công. Thứ hai là đặt một ứng dụng không hợp lệ trong thư mục INSTALLED_APPS. Vì vậy, đặt một ứng dụng không thể nhập thành công cũng sẽ ném ra lỗi này. Lỗi này liên quan nhiều hơn đến phần ỨNG DỤNG CÀI ĐẶT trong tệp settings.py.

SESSION_ENGINE = 'django.contrib.sessions.backends.cache'
CACHES = {
'mặc định': {
'BACKEND': 'django.core.cache.backends.locmem.LocMemCache'
}
}
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'django.contrib.postgres',
'Django_app1'
]

  • ObjectDoesNotExist: Khi một đối tượng không phải là một phần của mô hình tương ứng thì lỗi objectDoesNotExit sẽ được kích hoạt. Ngoại lệ này là một lớp cơ sở của các ngoại lệ DoesNotExist.
  • FieldDoesNotExist: Trường không tồn tại lỗi được kích hoạt khi trường được thử không phải là một phần của cơ sở dữ liệu hoặc mô hình được tham chiếu. điều này có nghĩa là khi trường được thử trong truy vấn được kích hoạt không phải là một phần của mô hình được tạo trong tệp models.py thì lỗi FieldDoesNotExist sẽ được kích hoạt bởi khung django. Lỗi này do _meta.get_field () của một mô hình đưa ra khi trường được thử không phải là một phần hợp lệ của mô hình đó hoặc cha mẹ của mô hình.
  • MultipleObjectsReturned: Ngoại lệ này được đưa ra khi có sự khác biệt về một số đối tượng được trả về bởi truy vấn. Vì vậy, khi truy vấn cơ sở dữ liệu nếu truy vấn mong đợi phản hồi của một đối tượng được trả lại nhưng trong trường hợp thực thi, nếu nhiều đối tượng được phân phối dưới dạng đầu ra cho truy vấn thì ngoại lệ nhiều đối tượng sẽ được kích hoạt bởi khung công tác django. Phiên bản cơ sở cho ngoại lệ này được kế thừa trong lõi. lớp ngoại lệ, Về cơ bản mọi lớp mô hình sẽ chứa một phiên bản lớp con, điều này sẽ hữu ích trong việc xác định loại đối tượng mà nhiều đối tượng được trả về.
  • Hoạt động đáng ngờ: Tất cả hoạt động đã xác định được coi là đáng ngờ bởi khung công tác django sẽ được gắn thẻ ngoại trừ hoạt động đáng ngờ. Các ngoại lệ chủ yếu nằm trong khung bảo mật được coi là các ngoại lệ hoạt động đáng ngờ. Ngoại lệ hoạt động đáng ngờ này được chia thành các ngoại lệ lớp con như được liệt kê bên dưới.
    • DisallowedHost
    • DisallowedModelAdminLookup
    • DisallowedModelAdminToField
    • DisallowedRedirect
    • InvalidSessionKey
    • RequestDataTooBig
    • SuspiciousFileOperation
    • SuspiciousMultipartForm
    • Lời thú nhận đáng ngờ
    • TooManyFieldsSent
  • PermissionDenied: Ngoại lệ bị từ chối cấp quyền được nêu ra khi người dùng không có quyền truy cập hoặc quyền phù hợp đối với thực thể đã cố gắng. Đây là một ngoại lệ hướng truy cập. Ở hầu hết các trường hợp, các vấn đề theo định hướng bảo mật sẽ được gắn thẻ trong trường hợp ngoại lệ này và được kích hoạt như trường hợp bị từ chối cấp quyền. Ngoại lệ này cung cấp tính toàn vẹn bổ sung trong việc ổn định ứng dụng.
  • ViewDoesNotExist: Ngoại lệ này chủ yếu được đưa ra bởi tệp url.py. Khi một chế độ xem đã cố gắng được đề cập trong tệp urls.py không có trong tệp views.py thực thì lỗi ViewDoesNotExist sẽ xuất hiện. Ngoại lệ này cũng có thể được nâng lên có điều kiện.
Xem Thêm  Làm thế nào để in đậm văn bản trong CSS - văn bản in đậm trong css

Ví dụ:

từ django.shortcuts nhập kết xuất
từ django.http nhập HttpResponse
từ Django_app1.forms nhập Valueform
từ django.core.exceptions nhập ViewDoesNotExist
từ django.contrib.auth.models nhập Người dùng
deftemplate_view (request_iter):
template_Var = {
"Entity_name": "Educba",
"Entity_type": "hướng dẫn",
"Entity_students_count": 345,
"Error_Message": "Không tìm thấy đối tượng hợp lệ"
}
trả về kết xuất (request_iter, 'design.html', context = template_Var)
defformView (request_iter):
form = Valueform ()
if request_iter.method == "POST":
value = Valueform (request_iter.POST)
if value.is_valid ():
first_name = value.cleaned_data ['first_name']
if request_iter.session.has_key (first_name):
print (request_iter.session.items ())
trả về kết xuất (request_iter, 'Session.html')
khác:
request_iter.session [first_name] = first_name
trả về kết xuất (request_iter, 'Form_Handeling.html', {"form": form})
khác:
nâng ViewDoesNotExist ("!!! CHẾ ĐỘ XEM KHÔNG HỢP LỆ !!!")
trả về kết xuất (request_iter, 'Form_Handeling.html', {"form": form})

  • Đã cấu hình không đúng cách: Ngoại lệ được định cấu hình không đúng được đưa ra khi cơ sở dữ liệu được kết nối với Django không được định cấu hình đúng cách trong khuôn khổ django. Vì vậy, khi có sự cố kết nối trên cơ sở dữ liệu thì ngoại lệ này đối với cấu hình không phù hợp sẽ được kích hoạt.

Ví dụ:

Base.py (Mã nguồn mà từ đó ngoại lệ được đưa ra):

cơ sở dữ liệu def (self):
nếu self._databases là Không:
self._databases = settings.DATABASES
if self._databases == {}:
self._databases = {
DEFAULT_DB_ALIAS: {
'ENGINE': 'django.db.backends.dummy',
},
}
nếu DEFAULT_DB_ALIAS không có trong self._databases:
nâng cao không đúng cáchConfigured ("Bạn phải xác định cơ sở dữ liệu '% s'."% DEFAULT_DB_ALIAS)
if self._databases [DEFAULT_DB_ALIAS] == {}:
self._databases [DEFAULT_DB_ALIAS] ['ENGINE'] = 'django.db.backends.dummy'
trả về self._databases

Base.py (Mã nguồn khung kích hoạt ngoại lệ):

Xem Thêm  Cách sử dụng Sự kiện DOM onclick với JavaScript - thêm onclick vào phần tử javascript

DATABASES = {
'mặc định': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': os.path.join (BASE_DIR, 'db.sqlite3'),
}
}

Snap of The Exception:

  • MiddlewareNotUsed : Vấn đề này được nêu ra nếu có sự cố với thiết lập phần mềm trung gian cho dự án django. Trường hợp thường xuyên của vấn đề này là khi phần mềm trung gian được đề cập không được định cấu hình đúng cách trong tệp SETTINGS.py của dự án. Khi có vấn đề hợp lệ trong các cấu hình phần mềm trung gian đó thì những vấn đề đó sẽ được coi là vấn đề về cấu hình phần mềm trung gian.

SETTINGS.py (Cấu hình phần mềm trung gian):

MIDDLEWARE = ​​[
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
]

  • FieldError : Với cơ sở dữ liệu chứa một số trường trong đó, có khả năng trường được đề cập trong cơ sở dữ liệu không hợp lệ hoặc trường gặp phải một số vấn đề về sự tồn tại hoặc khi truy xuất. tập hợp các ngoại lệ đã phân loại này ở cấp trường được đề cập bởi trường Ngoại lệ lỗi trong Django.
  • ValidationError : Có một số cách dữ liệu trong một trường dự kiến ​​sẽ được xác thực để chúng cần có sự nhất quán. Những xác minh này có thể đạt được bằng các thực thể xác nhận tùy chỉnh và mặc định. Vì vậy, một ngoại lệ được nêu ra từ các quy trình xác thực này được gắn thẻ là ngoại lệ Lỗi xác thực.

Các bài báo được đề xuất

Đây là hướng dẫn về Trường hợp ngoại lệ của Django. Ở đây chúng ta cũng thảo luận về việc giới thiệu và danh sách các ngoại lệ tiêu chuẩn tổng thể cùng với các ví dụ và việc triển khai mã của nó. Bạn cũng có thể xem các bài viết sau để tìm hiểu thêm –

Xem Thêm  Cách chuyển một số thành chuỗi trong JavaScript - float sang chuỗi javascript

0

Chia sẻ

Chia sẻ


Xem thêm những thông tin liên quan đến chủ đề django thử ngoại trừ ví dụ

Django_Bài 2_Tìm hiểu về trang Admin trong Django

alt

  • Tác giả: DeveloperViệtNam
  • Ngày đăng: 2021-08-17
  • Đánh giá: 4 ⭐ ( 2361 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Django.
    Python Django.
    Django cơ bản.
    Khóa học Django.
    Django_Bài 2_Tìm hiểu về trang Admin trong Django.
    Khóa học Django của Developer Việt Nam.
    Trang admin trong django.
    Cách thay đổi tên trang admin trong Django.
    Cách loại bỏ bắt lỗi mật khẩu trong Django.

Học Django trong 1 ngày

  • Tác giả: minhng.info
  • Đánh giá: 5 ⭐ ( 4587 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Bài viết hướng dẫn những điểm trọng tâm nhất để bắt đầu viết web sử dụng Django (có kèm source code). Django là 1 web framework nổi tiếng và phổ biến nhất cho Python.

Lập Trình Web Step-by-step Với Django (Phần 1)

  • Tác giả: codelearn.io
  • Đánh giá: 4 ⭐ ( 6594 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Chắc hẳn nhiều bạn khi đọc tiêu đề, cũng không ngờ python có thể làm web nhỉ . Hôm nay, mình cùng nhau tìm hiểu về Django và thiết lập 1 số thứ cho người mới

Django – Model nâng cao – Phần 3

  • Tác giả: phocode.com
  • Đánh giá: 3 ⭐ ( 8461 lượt đánh giá )
  • Khớp với kết quả tìm kiếm:

Chạy một trường hợp thử nghiệm cụ thể trong Django khi ứng dụng của bạn có thư mục kiểm tra

  • Tác giả: qastack.vn
  • Đánh giá: 5 ⭐ ( 6959 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: [Tìm thấy giải pháp!] Thanh toán django-mũi . Nó cho phép bạn chỉ định các bài kiểm tra để chạy…

PYTHON THỬ NGOẠI TRỪ BẰNG PYTHON

  • Tác giả: vi.ichlese.at
  • Đánh giá: 4 ⭐ ( 6894 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Thử Ngoại trừ trong Python cho phép bạn bắt lỗi và làm điều gì đó hợp lý hơn. Các ngoại lệ thuận tiện cho việc xử lý lỗi trong chương trình.

Cơ bản về Django Testing

  • Tác giả: viblo.asia
  • Đánh giá: 5 ⭐ ( 8144 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: 1. Mở đầu Khi mới chập chững bước vào lập trình, mình chỉ nghĩ đơn giản là mình phát triển chức năng thì mình cứ code cho xong, nếu có bug thì lại fix. Nhưng đối với những dự án lớn, khách hàng liên…

Xem thêm các bài viết khác thuộc chuyên mục: Kiến thức lập trình

By ads_php