跳至內容

RapidSMS 開發人員指南/網頁檢視和模板

來自華夏公益教科書,開放的書籍,開放的世界

在網頁檢視中,通常我們希望以動態的方式在網頁中顯示應用程式的某些功能,例如統計資訊、報告,甚至資料操作。

在您的應用程式中建立一個新檔案並將其命名為 views.py ,在本例中是在 app/survey

檢視接收一個 http 請求並返回一個 http 響應,我們匯入 HttpResponse 類,它位於 django.http 模組中

from django.http import HttpResponse

在檢視中,我們定義了將以 http 請求作為引數的函式,檢視返回一個包含生成響應的 HttpResponse 物件。每個檢視函式負責返回一個 HttpResponse 物件。因此,我們將索引函式定義如下:

from django.http import HttpResponse
from models import Survey

def index (request):    
    result = Survey.objects.all()
       
    return  render_to_response(request,'survey/index.html',{'allrecords':result})

此函式只是從模型(資料庫)中檢索資料物件,並將它們傳遞給模板,以便在格式良好的檢視中顯示。

    render_to_response(template[, dictionary][, context_instance][, mimetype])

使用給定的上下文字典渲染給定的模板,並返回一個包含該渲染文字的 HttpResponse 物件。

有關更多詳細資訊,請訪問:django 檢視

URL 對映檔案

[編輯 | 編輯原始碼]

在您的應用程式中建立一個新檔案 urls.py ,它將是 URL 模式和回撥函式(我們的檢視)之間的簡單對映。在此檔案中,匯入 urls 預設值和我們剛剛建立的 views 中的檢視。

from django.conf.urls.defaults import *
import views

我們應該配置 urls 檔案來自定義我們的檢視:我們將在 app/survey 中有兩種檢視:主檢視 views.index 和 views.profile

urlpatterns = patterns('',
    url(r'^survey/?$', views.index),
    url(r'^survey/(\d+)/?$', views.profile, name='profile')
)

Patterns 來自 django 配置 urls 預設值,我們將第一個引數設定為空,並將其他引數設定為需要的值

每個正則表示式字串前面的 'r' 是可選的,但建議使用。它告訴 Python 字串是“原始的”。

\d 出現在組正則表示式中,是我們傳遞給 profile 檢視的引數。

模板是一個文字檔案,它可以生成任何基於文字的格式,例如(html、xml 等)。模板可以包含變數,您將在程式碼中替換其值,變數看起來像這樣:Template:Allrecords。模板編譯器將評估該變數並將其替換為結果。

我們必須建立一個模板,我們在其中編寫 html 程式碼以將資料作為報告或統計資訊或我們希望在 Web 應用程式中顯示的任何內容進行檢視。

在您的應用程式中建立一個新資料夾,並將其命名為 template

apps/survey/template

在此資料夾內建立您的模板 .html 檔案。

index.html、profile.html

模板示例

{% extends base_template %}
{% block content %}
<head>
</head>
<body>
<h1> Survey result </h3>
<h2>Summery </h2>
<table border="1">
<tr> <td> Number of records </td> <td> {{allrecords.count()}}</td></tr>
<tr> <td> First name</td> <td> {{allrecords.firstName}}</td></tr>

</table>
</body>
{% endblock %}

模板繼承

[編輯 | 編輯原始碼]

要重用 Django 的模板,就是模板繼承。模板繼承允許您構建一個包含網站所有通用元素並定義子模板可以覆蓋的塊的“骨架”基本模板。我們將程式碼放在塊內,以從 django 主模板繼承,如下所示。

{% extends base_template %}
{% block content %}

……

{% endblock %}

有關模板的更多資訊,請訪問:[模板語言]


自定義管理介面

華夏公益教科書