Python开发入门与实战3-Django动态页面
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动态页面的更多相关文章
- Python开发入门与实战2-第一个Django项目
2.第一个Django项目 上一章节我们完成了python,django和数据库等运行环境的安装,现在我们来创建第一个django project吧,迈出使用django开发应用的第一步. 2.1.创 ...
- Python开发入门与实战5-django模型
5.Django模型 在当今的Web 应用中,主观逻辑经常牵涉到与数据库的交互,数据库驱动网站.在后台连接数据库服务器,从中取出一些数据,然后在 Web 页面用各种各样的格式展示这些数据.这个网站也可 ...
- Python开发入门与实战4-模板页面
4.Django基于模板页面 在前一章中,HTML是直接被硬编码在 Python views.py代码中,如下: from django.http import HttpResponse import ...
- Python开发入门与实战1-开发环境
1.搭建Python Django开发环境 1.1.Python运行环境安装 Python官网:http://www.python.org/ Python最新源码,二进制文档,新闻资讯等可以在Pyth ...
- Python开发入门与实战8-基于Java的集成开发环境
8. 基于Java的Python的集成开发环境 目前为止我们所有的代码和例子都是通过Notepad文本编辑器来实现的,实际项目开发中这种编码模式效率较低(大虾除外),使用IDE集成开发环境常常大幅度的 ...
- Python开发入门与实战18-Windows Azure 虚拟机部署
18. 微软云虚拟机部署 上一章节我们介绍了如何在新浪云部署我们的在python django应用,本章我们来介绍如何Windows Azure上部署我们的应用. 18.1. 注册Windows Az ...
- Python开发入门与实战16-APACHE部署
16. Windows平台apache部署 本章节我们简要的描述一下如何在windows平台部署apache的django站点. Python Django 项目部署发布到windows apache ...
- Python开发入门与实战13-基于模板的界面
13. 基于模板的界面 本章我们将继续基于库存的简单例子来阐述如何在python django中体现MVC的架构,根据djangobook说明: M:数据存取部分,由django数据库层处理,本章要讲 ...
- Python开发入门与实战20-微信开发配置
随着移动互联网时代的来临,微信已经成为移动互联网移动端的主要入口,现在很多的大型企业都有自己的微信服务号,如:银行业有自己的微银行,基金公司的公众服务号.通过微信入口可以方便快速的实现企业提供的服务. ...
随机推荐
- WPF:常见问题
1.自定义Main函数 背景: wpf 默认的Main函数在 App.g.cs文件中,在App.xmal.cs内自定义Main函数后冲突. 解决方法: 法一: 1)新建class1.cs类,在其中设置 ...
- Java调用脚本
几个参考: java调用shell http://www.cnblogs.com/Seamanm/archive/2010/10/04/1842059.html java程序中调用linux命令 ...
- 使用Lombok简化你的代码
一.安装 eclipse 下载:https://projectlombok.org/ 双击安装即可. 重启eclipse/myeclipse 如果有报错,clean一下项目 ...
- 如何面试有2年java工作经验的应聘人员
1.什么是事务控制?答:事务控制就是将一系列操作当成一个不可拆分的逻辑单元,保证这些操作要么都成功,要么都失败.在关系数据库中,一个事务可以是一条SQL语句,一组SQL语句或整个程序.事务是恢复和并发 ...
- 转义字符_MySQL识别下面的转义序列
转义字符.MySQL识别下面的转义序列 在字符串中,某些序列具有特殊含义.这些序列均用反斜线('\')开始,即所谓的转义字符.MySQL识别下面的转义序列: \0 ASCII 0(NUL)字符. \' ...
- [问题2015S08] 复旦高等代数 II(14级)每周一题(第九教学周)
[问题2015S08] 设 \(A\) 为 \(n\) 阶复方阵, 证明: \(A\overline{A}\) 与 \(\overline{A}A\) 相似, 其中 \(\overline{A}\) ...
- [问题2015S09] 复旦高等代数 II(14级)每周一题(第十教学周)
[问题2015S09] 设 \(A,B\) 是 \(n\) 阶复矩阵, 满足 \(\mathrm{rank}(AB-BA)\leq 1\), 证明: \(A,B\) 可同时上三角化. 问题解答请在以 ...
- 统计单词个数及词频(C++实现)
#include<iostream> #include<fstream> #include<string> using namespace std; struct ...
- C语言运算符和优先级
关于C语言运算符和优先级,经整理众多博客资料汇入自己的实战,如下: a.算术运算 C语言一共有34种运算符,包括常见的加减乘除运算. 1) 加法:+ 还可以表 ...
- chain.doFilter(req, resp)
web中的Filiter过滤器: 当req不改变时,filiter在web中的配置和顺序没有关系: 但当在filiter中将其改变类型时,会导致其改变的request类型包装层次过多,无法获取其中的参 ...