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

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是怎么处理请求的

  1. 进来的请求转入/hello/.
  2. Django通过在ROOT_URLCONF配置来决定根URLconf.
  3. Django在URLconf中的所有URL模式中,查找第一个匹配/hello/的条目。
  4. 如果找到匹配,将调用相应的视图函数
  5. 视图函数返回一个HttpResponse
  6. 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)

阅读更多
个人分类: django
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭