簡體   English   中英

為什么是基於函數的視圖和基於類的視圖?

[英]Why function-based views and class-based views?

我是 django 中 web 開發的初學者,我想知道為什么需要使用函數和類來渲染視圖? urls 模塊不能直接而不是通過基於函數的視圖間接地將 url 鏈接到 HTML 模板嗎?

您確實可以讓 urls 模塊以正確的方式為您呈現 HTML。 為此,您可以使用direct_to_templatehttps://django.readthedocs.io/en/1.4.X/topics/generic-views.html#using-generic-views

當您在向用戶發送響應(“渲染模板”)之前需要完成任何額外處理時,您將依賴 function。 例如,您可能需要記錄用戶的 IP 地址,或者您可以從數據庫加載數據以填寫模板。 或者您甚至不必渲染 HTML,而是渲染 JSON。 這就是您需要自定義視圖的原因,該視圖將在 function 或 class 中實現。

因此,Django 通常的意義在於,您將希望提供的不僅僅是 static HTML,您可能希望以某種方式處理它。 正如其他答案所說,如果您只想返回 HTML,您可以使用 TemplateView ( https://docs.djangoproject.com/en/3.0/ref/class-based-views/base/#templateview )您的 web 服務器服務器 static 文件( https://docs.djangoproject.com/en/3.0/howto/static-files/deployment

除非您的用例是單頁應用程序,否則您很可能會擁有一些多頁通用的 HTML,在這種情況下,您可以包含和擴展模板。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM