您的位置:首页 > 编程语言 > Go语言

【django 学习笔记】02-视图和URL配置

2010-06-01 13:28 696 查看

1.简单的视图

编辑views.py文件

from django.http import HttpResponse

def hello(request):

return HttpResponse(“Hello world”)

每个视图函数至少要有一个参数,通常被叫作request。
这是一个触发这个视图、包含当前Web请求信息的对象,是类django.http.HttpRequest的一个实例。

2.简单的URLconf

编辑urls.py文件

from django.conf.urls.defaults import *

from mysite.views import hello

urlpatterns = patterns(”,

(‘^hello/$’, hello),

)

首先,我们从模块 (在 Python 的 import 语法中, mysite/views.py 转译为 mysite.views )
中引入了hello 视图。 (这假设mysite/views.py在你的Python搜索路径上。关于搜索路径的解释,请参照下文。)

接下来,我们为urlpatterns加上一行: (‘^hello/$’, hello),
这行被称作URLpattern,它是一个Python组中第一个元素是模式匹配字符串(正则表达式);第二个元素是那个模式将使用的视图函数。

有关正则表达式的更多内容,请访问 http://www.djangoproject.com/r/python/re-modul

3.Django是怎么处理请求的

进来的请求转入/hello/.

Django通过在ROOT_URLCONF配置来决定根URLconf.

Django在URLconf中的所有URL模式中,查找第一个匹配/hello/的条目。

如果找到匹配,将调用相应的视图函数

视图函数返回一个HttpResponse

Django转换HttpResponse为一个适合的HTTP response, 以Web page显示出来

4.稍复杂点的视图

view.py

from django.http import HttpResponse

import datetime

def current_datetime(request):

now = datetime.datetime.now()

html = “<html><body>It is now %s.</body></html>”
% now

return HttpResponse(html)

urls.py

from django.conf.urls.defaults import *

from mysite.views import hello, current_datetime

urlpatterns = patterns(”,

(‘^hello/$’, hello),

(‘^time/$’, current_datetime),

)

5.动态urls

urls.py

urlpatterns = patterns(”,

(r’^time/plus/(/d{1,2})/$’, hours_ahead),

)

view.py

from django.http import Http404, HttpResponse

import datetime

def hours_ahead(request, offset):

try:

offset = int(offset)

except ValueError:

raise Http404()

dt = datetime.datetime.now() + datetime.timedelta(hours=offset)

html = “<html><body>In %s hour(s), it will be
%s.</body></html>” % (offset, dt)

return HttpResponse(html)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息