3.Django动态页面

上一章节我们实现的helloworld视图是用来演示Django网页是创建的,它不是一个动态网页,每次运行/helloworld/,我们都将看到相同的内容,它类似一个静态HTML文件。

接下来我们将实现另一个视图,加入动态内容,例如当前日期和时间显示在网页上。通过简单的下一步,来演示Django的这个技术。

3.1.一个简单的动态页面例子

这个视图做两件事情: 获取服务器当前日期和时间,并返回包含这些值的HttpResponse 。为了让Django视图显示当前日期和时间,在代码中引入datetime模块,然后要把语句:datetime.datetime.now()放入视图函数,然后返回一个HttpResponse对象即可。代码如下:

from django.http import HttpResponse

import datetime

def helloworld(request):

      return HttpResponse("Hello world")

def current_datetime(request):

    now   = datetime.datetime.now()

    html   = "<html><body>It is now %s.</body></html>"   % now

      return HttpResponse(html)

  函数的第二行代码用 Python 的格式化字符串(format-string)功能构造了一段 HTML 响应。 字符串中的%s是占位符,字符串后面的百分号表示用它后面的变量now的值来代替%s。变量%s是一个datetime.datetime对象。它虽然不是一个字符串,但是%s(格式化字符串)会把它转换成字符串,如:2014-11-03 14:15:43.465000。这将导致HTML的输出字符串为:It is now 2014-11-03 14:15:43.465000。

完成添加views.py上述代码之后,同上,在urls.py中添加URL模式,以告诉Django由哪一个URL来处理这个视图。 如下:我们定义/mytime/URL:

from django.conf.urls import patterns, include, url

from mysite.views import hello,current_datetime

# Uncomment the next two lines to enable the admin:

# from django.contrib import admin

# admin.autodiscover()

urlpatterns = patterns('',

    # Examples:

    # url(r'^$',   'mysite.views.home', name='home'),

    # url(r'^mysite/',   include('mysite.foo.urls')),

    # Uncomment the   admin/doc line below to enable admin documentation:

    #   url(r'^admin/doc/', include('django.contrib.admindocs.urls')),

    # Uncomment the   next line to enable the admin:

    #   url(r'^admin/', include(admin.site.urls)),

    ('^helloworld/$',   hello),

    ('^mytime/$',   current_datetime),

)

  写好视图并且更新URLconf之后,运行命令python manage.py runserver运行服务器,在浏览器中输入http://127.0.0.1:8000, 我们将看到增加的mytime页面目录。

在浏览器中输入http://127.0.0.1:8000/mytime/。 网页将显示当前的日期和时间。

3.2. 小结

本小节通过一个简单例子展示了动态页面的例子,目前为止HTML源码被直接硬编码在 Python 代码之中,下一章节我们将介绍Django模板系统,如何解决Python代码与页面设计分离的问题。

Python开发入门与实战3-Django动态页面的更多相关文章

  1. Python开发入门与实战2-第一个Django项目

    2.第一个Django项目 上一章节我们完成了python,django和数据库等运行环境的安装,现在我们来创建第一个django project吧,迈出使用django开发应用的第一步. 2.1.创 ...

  2. Python开发入门与实战5-django模型

    5.Django模型 在当今的Web 应用中,主观逻辑经常牵涉到与数据库的交互,数据库驱动网站.在后台连接数据库服务器,从中取出一些数据,然后在 Web 页面用各种各样的格式展示这些数据.这个网站也可 ...

  3. Python开发入门与实战4-模板页面

    4.Django基于模板页面 在前一章中,HTML是直接被硬编码在 Python views.py代码中,如下: from django.http import HttpResponse import ...

  4. Python开发入门与实战1-开发环境

    1.搭建Python Django开发环境 1.1.Python运行环境安装 Python官网:http://www.python.org/ Python最新源码,二进制文档,新闻资讯等可以在Pyth ...

  5. Python开发入门与实战8-基于Java的集成开发环境

    8. 基于Java的Python的集成开发环境 目前为止我们所有的代码和例子都是通过Notepad文本编辑器来实现的,实际项目开发中这种编码模式效率较低(大虾除外),使用IDE集成开发环境常常大幅度的 ...

  6. Python开发入门与实战18-Windows Azure 虚拟机部署

    18. 微软云虚拟机部署 上一章节我们介绍了如何在新浪云部署我们的在python django应用,本章我们来介绍如何Windows Azure上部署我们的应用. 18.1. 注册Windows Az ...

  7. Python开发入门与实战16-APACHE部署

    16. Windows平台apache部署 本章节我们简要的描述一下如何在windows平台部署apache的django站点. Python Django 项目部署发布到windows apache ...

  8. Python开发入门与实战13-基于模板的界面

    13. 基于模板的界面 本章我们将继续基于库存的简单例子来阐述如何在python django中体现MVC的架构,根据djangobook说明: M:数据存取部分,由django数据库层处理,本章要讲 ...

  9. Python开发入门与实战20-微信开发配置

    随着移动互联网时代的来临,微信已经成为移动互联网移动端的主要入口,现在很多的大型企业都有自己的微信服务号,如:银行业有自己的微银行,基金公司的公众服务号.通过微信入口可以方便快速的实现企业提供的服务. ...

随机推荐

  1. Linux之grep命令详解

    简介 grep (global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它 ...

  2. IntelliJ IDEA14 配置 SVN

    最新升级IDEA13到14版本,升级后发现IDEA中SVN无法正常使用,但文件夹下能够正常使用. 并且报错:svn: E204899: Cannot run program "svn&quo ...

  3. javascript 设计模式2----策略模式

    1.定义:定义一系类的算法,把它们一个个封装起来,并且使它们可以相互替换 2.解释:就是把算法和一个规则单独分封,在使用时单独调用. 简单例子: var strategies = { "S& ...

  4. Java 中文字符串编码之GBK转UTF-8

    写过两篇关于编码的文章了,以为自己比较了解编码了呢?! 结果今天又结结实实的上了一课. 以前转来转去解决的问题终归还是简单的情形.即iso-8859-1转utf-8,或者iso-8859-1转gbk, ...

  5. DSO、CUBE区别(覆盖、合计)

    声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...

  6. MSDN for VS2012 的安装

    在VS2012中,由于MSDN默认不内置,VS2008 以上的就没有独立的 MSDN 了 ,而是被 Microsoft Help Viewer 取代了. 该组件包含在 VS2012 的 ISO 安装镜 ...

  7. caller和callee属性

    ECMAScript5规范了函数对象的属性:caller.除了Opera的早期版本不支持,其他浏览器都支持这个ECMAScript3并没有定义的属性. [IE,Firefox,Chrome,Safar ...

  8. aws在线技术峰会笔记-游戏解决方案

    选项1:可以将aws的SDK嵌入到APP中. 选项2:Mobile Hub自动生成代码. 选项3:开源免费的游戏引擎.可视化脚本编程,实现客户端的逻辑代码. 用户管理 Cognito Identity ...

  9. Cron表达式简单学习

    CronTriggers往往比SimpleTrigger更有用,如果您需要基于日历的概念,而非SimpleTrigger完全指定的时间间隔,复发的发射工作的时间表.CronTrigger,你可以指定触 ...

  10. 《BI项目笔记》创建时间维度(1)

    SSAS Date 维度基本上在所有的 Cube 设计过程中都存在,很难见到没有时间维度的 OLAP 数据库.但是根据不同的项目需求, Date 维度的设计可能不大相同,所以在设计时间维度的时候需要搞 ...