一,创建视图
通过 django-admin.py startproject blog 创建的项目目录结构为
/blog
-manage.py
/blog
-__init__.py -setting.py -urls.py -wsgy.py
进入里层 blog目录 新建 views.py
1 from django.http import HttpResponse, Http404
2 from django.template.loader import get_template
3 from django.template import Context
4 import datetime
5
6 def hello(request):
7 return HttpResponse("Hello django")
8
9 def my_homepage_view(request):
10 return HttpResponse("Home page")
11
12 def current_datetime(request):
13 now = datetime.datetime.now()
14 t = get_template('current_datetime.html')
15 html = t.render(Context({'current_date':now}))
16 return HttpResponse(html)
17
18 def hours_ahead(request, offset):
19 try:
20 offset = int(offset)
21 except ValueError:
22 raise Http404()
23 dt = datetime.datetime.now() + datetime.timedelta(hours=offset)
24 html = "<html><body>In %s hour(s), it will be %s.</body></html>" % (offset, dt)
25 return HttpResponse(html)
1-4行导入需要的资源
6,9,12行分别定义四个方法
hello, my_homepage_view 均返回字符串
current_datetime方法 通过从 模板目录加载目标 然后将变量放入模板生成新页面字符串并返回
hours_ahear方法有两个参数 其中 offset 是通过url传递过来的参数
2,视图创建后配置urls
1 from django.conf.urls import patterns, include, url
2 from blog.views import hello, my_homepage_view, current_datetime, hours_ahead
3
4 # Uncomment the next two lines to enable the admin:
5 # from django.contrib import admin
6 # admin.autodiscover()
7
8 urlpatterns = patterns('',
9
10 ('^$', my_homepage_view),
11 ('^hello/$', hello),
12 ('^time/$', current_datetime),
13 (r'^time/plus/(\d{1,2})/$', hours_ahead),
14
15 )
配置4个url映射,10行 映射首页,11行hello方法,12行请求current_datetime方法, 13行计算几小时后的时间。
字典的 key 类似 '^action/$' 是对应url请求,就是一般的正则表达式写法。 value 及对应 views方法,需在from里引入。
3,创建模板
在项目目录 blog 中创建 template,然后编辑 /blog/blog/setting.py
109 TEMPLATE_DIRS = (
110 # Put strings here, like "/home/html/django_templates" or "C:/www/django/templates".
111 # Always use forward slashes, even on Windows.
112 # Don't forget to use absolute paths, not relative paths.
113 '/home/zhh/Workspace/Django/blog/template',
114
115 )
第113行 即 配置的模板存放目录
然后在 /blog目录新建template目录,然后在template目录新建文件 current_datetime.html
1 <html>
2 <body>
3 It is now {{ current_date}}
4 </body>
5 </html>
到这里项目已经完成
http://localhost:8000/
http://localhost:8000/hello/
http://localhost:8000/time/
http://localhost:8000/time/plus/1/
ps.访问time时会发现时间有误,因为使用的是芝加哥时间,需到setting.py中配置时间为北京时间。
31 TIME_ZONE = 'Asia/Shanghai'