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 视图
在您的应用程序中创建一个新文件 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 %}
有关模板的更多信息,请访问:[模板语言]