创建视图和添加可访问的url
如果你曾经发布过Hello world页面,但是没有使用网页框架,只是简单的在hello.html文本文件中输入Hello World,然后上传到任意的一个网页服务器上。 注意,在这个过程中,你已经说明了两个关于这个网页的关键信息: 它包括(字符串 “Hello world”)和它的URL( http://127.0.0.1:8000/hello.html)
使用Django,你会用不同的方法来说明这两件事 页面的内容是靠view function(视图函数) 来产生,URL定义在 URLconf 中。
先写一个Hello World视图函数。
注意Django新版本中会自动在你的app_name目录下创建一个view.py文件,这个就是我们放视图函数的文件。
from django.http import HttpResponse
def hello(request):
return HttpResponse(“Hello world”)
添加URL和视图之间的映射
URLconf 就像是 Django 所支撑网站的目录。 它的本质是 URL 模式以及要为该 URL 模式调用的视图函数之间的映射表。执行 django-admin.py startproject 时,该脚本会自动为你建了一份 URLconf(即 urls.py 文件)。
在高版本Django中,自动为我们加入了后台的url,和视图,不过这个视图是库内部的。这里加入我们刚刚写的视图,注意格式一定要引号,要用app_name后的完整路径。
urlpatterns = [
url(r’^app_name/’,’app_name.views.hello’),
url(r’^admin/’, admin.site.urls),
]
在浏览器输入127.0.0.1:8000/hello/即可访问hello world页面!
总结Django加载页面的流程
- 进来的请求转入/hello/.
- Django通过在ROOT_URLCONF配置来决定根URLconf.
- Django在URLconf中的所有URL模式中,查找第一个匹配/hello/的条目。
- 如果找到匹配,将调用相应的视图函数
- 视图函数返回一个HttpResponse
- Django转换HttpResponse为一个适合的HTTP response, 以Web page显示出来
让你的网页动态起来
添加一个新的视图
在views.py文件中添加如下内容-一个实时时间函数
import datetime
def hello(request):
return HttpResponse(“Hello world”)
def current_datetime(request):
now = datetime.datetime.now()
html = “It is now %s.” % now
return HttpResponse(html)
修改URLConf - urls.py
添加如下内容:
url(r'^time/','article.views.current_datetime')
Django和URL配置背后的哲学: 松耦合原则。 简单的说,松耦合是一个 重要的保证互换性的软件开发方法。URL的定义和视图函数之间就是松耦合的,换句话说,决定URL返回哪个视图函数和实现这个视图函数是在两个不同的地方。
参考http://djangobook.py3k.cn/2.0/chapter03/
http://read.douban.com/ebook/8981906/?dcs=book-search