django入门笔记-2

一,创建视图

通过 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'

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值