第一个动态页面

bigzhu posted @ May 22, 2007 10:43:00 PM in django , 966 阅读

建立一个返回当前时间的页面
返回给用户页面需要一个HttpResponse对象
需要返回的html文本作为一个参数传递给HttpResponse对象
写好的py文件放在Python PATH目录下,让python能找到就可以.
from django.http import HttpResponse
import datetime
def current_datetime(request):
now = datetime.datetime.now()
html = "It is now %s." % now
return HttpResponse(html)

django如何调用返回HttpResponse对象的py文件呢?
秘密就在urls.py文件,生成项目的时候,就会生成这个文件.
urls.py的作用就是告诉django:发现用户请求这个url,那就调用这个.py 发现用户请求那个url,那就调用那个url
打开urls.py
from django.conf.urls.defaults import *
urlpatterns = patterns(”,
# Example:
# (r’^mysite/’, include(‘mysite.apps.foo.urls.foo’)),
# Uncomment this for admin:
# (r’^admin/’, include(‘django.contrib.admin.urls’)),
)
这里主要看的就是变量urlpatterns,它定义了URL和处理URL的代码的映射
patterns用户返回生成urlpatterns,patterns的每个参数都是一个tuple
每个tuple表示一个url
每个tuple包括两个元素:第一个是一个正则表达式,用于匹配url
第二个元素指定要调用的py对象
^ 首行匹配
$ 行尾匹配

返回时间的代码保存为view.py,放到mysite下面
修改urls.py为:
from django.conf.urls.defaults import *
from mysite.views import current_datetime
urlpatterns = patterns(”,
(r’^now/$’, current_datetime),)
if __name__==’__main__’:
print urlpatterns
别忘了把mysite目录的上级目录加入PYTHONPATH中,否则mysite.views 是找不到的
打开http://127.0.0.1:8000/now测试是否now正常干活了
和url有关的配置还有一个地方,就是非常重要的settings.py
里面有一个ROOT_URLCONF = ‘mysite.urls’定义了做url映射的文件是在mysite包里面的urls
这种url映射机制其实和java的strusts架构很像,松耦合,以后修改起来很方便.



登录 *


loading captcha image...
(输入验证码)
or Ctrl+Enter