第一个Django网页小结
在url映射到函数部分用到了一些正则表达式的相关知识,在http://www.cnblogs.com/voidy/p/3946451.html中的博文有相关介绍,那些足以写Django网页了,不过如果想写爬虫的话,还是建议系统学习一下正则表达式的知识。
第一个动态视图
这个视图需要做两件事情: 计算当前日期和时间,并返回包含这些值的HttpResponse。在Python中这么写的:
>>> import datetime >>> now = datetime.datetime.now() >>> now datetime.datetime(2014, 8, 31, 10, 39, 40, 234000) >>> print now 2014-08-31 10:39:40.234000
为了让Django视图显示当前日期和时间,需要把语句:datetime.datetime.now()放入视图函数,然后返回一个HttpResponse对象即可。代码如下:
1 from django.http import HttpResponse 2 import datetime 3 4 def hello(request): 5 return HttpResponse("Hello world") 6 7 def current_datetime(request): 8 now = datetime.datetime.now() 9 html = "<html><body>It is now %s.</body></html>" % now 10 return HttpResponse(html)
在文件顶端,添加了一条语句:import datetime。这样就可以计算日期了。
函数中的第8行代码计算当前日期和时间,并以 datetime.datetime 对象的形式保存为局部变量 now 。
函数的第9行代码用 Python 的格式化字符串(format-string)功能构造了一段 HTML 响应。 字符串中的%s是占位符,字符串后面的百分号表示用它后面的变量now的值来代替%s。变量%s是一个datetime.datetime对象。它虽然不 是一个字符串,但是%s(格式化字符串)会把它转换成字符串,如:2014-08-31 10:39:40.234000。这将导致HTML的输出字符串为:It is now 2014-08-31 10:39:40.234000。
最后,正如上篇博文写的hello函数一样,视图返回一个HttpResponse对象,它包含生成的响应。
添加上述代码之后,还要在urls.py中添加URL模式,以告诉Django由哪一个URL来处理这个视图。 用/time/之类的字眼易于理解:
1 from django.conf.urls.defaults import * 2 from mysite.views import hello, current_datetime 3 4 urlpatterns = patterns('', 5 ('^hello/$', hello), 6 ('^time/$', current_datetime), 7 )
写好视图并且更新URLconf之后,运行命令python manage.py runserver以启动服务,在浏览器中输入http://127.0.0.1:8000/time/。 将会看到当前的日期和时间。