詳解Django中 render() 函數(shù)的使用方法
render() 函數(shù)
在講 render() 函數(shù)之前,我們在 Django 項目 index 文件夾的 urls.py 和 views.py 中編寫如下功能代碼:(不難,望讀者細心閱之)
# index的 urls.py
from django.urls import path
form . import views
urlpatterns = [
# 定義首頁的路由
path(' ', views.index, name='index'),
]
# index的views.py
from django.http import HttpResponse
def index(request):
html = '<h1> Hello World </h1>'
return HttpResponse(html, status=200)
視圖函數(shù) index 使用響應類 HttpResponse 實現(xiàn)響應過程。從 HttpResponse 的參數(shù)可知,第一個參數(shù)是響應內容,一般是網頁內容或 JSON 數(shù)據(jù),網頁內容是以HTML語言為主的,JSON數(shù)據(jù)用于生成API接口數(shù)據(jù)。第二個參數(shù)用于設置HTTP狀態(tài)碼,它支持HTTP所有的狀態(tài)碼。
從源碼角度分析,打開響應類 HttpResponse 的源碼文件,發(fā)現(xiàn) Django內置的響應類(本人在上篇文章中已講過)都是在 HttpResponse 的基礎上實現(xiàn)的,只不過它們的HTTP狀態(tài)碼有所不同,如圖下所示。

從 HttpResponse 的使用過程可知,如果要生成網頁內容,就需要將 HTML 語言以 字符串的形式表示,如果網頁內容過大,就會增加視圖函數(shù)的代碼量,同時也沒有體現(xiàn)模板的作用,因此Django在此基礎上進行了封裝處理,定義了函數(shù) render 和 redirect。
render()語法如下:
render(request, template_name, context=None, content_type=None, status=None, using=None)
render 的參數(shù) request 和 template name 是必需參數(shù),其余的參數(shù)是可選參數(shù)。各個參數(shù)說明如下。
- request:瀏覽器向服務器發(fā)送的請求對象,包含用戶信息、請求內容和請求方式等。
- template_name:設重模板文件名,用于生成網頁內容。
- context:對模板上下文(模板變量)賦值,以字典格式表示,默認情況下是一個空字典。
- content_type:響應內容的數(shù)據(jù)格式,一般情況下使用默認值即可。
- status:HTTP狀態(tài)碼,默認為200。
- using:設置模板引擎,用于解析模板文件,生成網頁內容。
為了更好地說明 render 的使用方法,我們通過簡單的例子來加以說明。在Django項目的index文件中的 views.py 和 templates 的 index.html 中編寫以下代碼:
# index的 views.py
from django.shortcuts import render
def index(request):
value = {'title': 'Hello Django'}
return render(request, 'index.html', context=value)
# templates 的 index.html
<!DOCTYPE html>
<html>
<body>
<h3> {{ title }} </h3>
</body>
</html>
視圖函數(shù) index 定義的變量 value 作為 render 的參數(shù) context,而模板 index.html 里通過使用模板上下文(模板變量){{ title }} 來獲取變量 value 的數(shù)據(jù),上下文的命名必須與變量 value 的數(shù)據(jù)命名(字典的key)相同,這樣 Django 內置的模板引擎才能將參數(shù)context(變量value)的數(shù)據(jù)與模板上下文進行配對,從而將參數(shù) context 的數(shù)據(jù)轉換成網頁內容。運行Django項目,在瀏覽器上訪問127.0.0.1:8000即可看到網頁信息,如圖下所示。

希望以上內容能夠幫助到各位!
到此這篇關于Django中 render() 函數(shù)的使用方法的文章就介紹到這了,更多相關Django中 render() 函數(shù)內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
pandas DataFrame 賦值的注意事項說明(index)
這篇文章主要介紹了pandas DataFrame 賦值的注意事項說明(index),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-04-04
使用python svm實現(xiàn)直接可用的手寫數(shù)字識別
這篇文章主要介紹了使用python svm實現(xiàn)直接可用的手寫數(shù)字識別,現(xiàn)在網上很多代碼是良莠不齊,真是一言難盡,于是記錄一下,能夠運行成功并識別成功的一個源碼2021-08-08
flask + pymysql操作Mysql數(shù)據(jù)庫的實例
下面小編就為大家?guī)硪黄猣lask + pymysql操作Mysql數(shù)據(jù)庫的實例。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-11-11
使用BeautifulSoup爬蟲程序獲取百度搜索結果的標題和url示例
這篇文章主要介紹了使用BeautifulSoup編寫了一段爬蟲程序獲取百度搜索結果的標題和url的示例,大家參考使用吧2014-01-01
pandas數(shù)據(jù)清洗實現(xiàn)刪除的項目實踐
本文主要介紹了pandas數(shù)據(jù)清洗實現(xiàn)刪除的項目實踐,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2022-06-06

