django入门笔记-2

来源:互联网 发布:jsp购物系统源码 编辑:程序博客网 时间:2024/05/22 15:01

一,创建视图

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

原创粉丝点击