Chinaunix首页 | 论坛 | 博客
  • 博客访问: 480012
  • 博文数量: 111
  • 博客积分: 2332
  • 博客等级: 大尉
  • 技术积分: 1187
  • 用 户 组: 普通用户
  • 注册时间: 2009-08-29 11:22
文章分类

全部博文(111)

文章存档

2013年(9)

2012年(28)

2011年(17)

2010年(28)

2009年(29)

我的朋友

分类: Python/Ruby

2009-10-29 11:32:17

参照:

django中从views.py函数调用模板有下面几种方法
1.render_to_response(template[, dictionary][, context_instance][, mimetype])
这个函数定义在django.shortcuts中。
template是模板名,要包含路径的,这个路径是加在django查找路径之后的路径;dictionary是传递给模板的模板变量值,键名是模板中的变量名,键值是模板中的变量值;context_instance主要是用来传递给模板RequestContext对象的(如果需要的话);mimetype是模板的MIME类型。

2.HttpResponseRedirect
这个类定义在django.http中。
这是一个HttpResponse的子类,使用他调用模板就相当于return了一个HttpResponseRedirect对象,象这样 return HttpResponseRedirect('***'),这里***是url路径。如果***为/就指的是127.0.0.1,如果***为/abc/就指的是127.0.0.1/abc/。这种方法其实相当于重定向了url,并没有直接调用模板。

3.redirect(to[, permanent=False], *args, **kwargs)
这个函数是django1.1中新加的,他定义在django.shortcuts中。
这个函数函数的参数如果是一个model,那么这个model的get_absolute_url()函数将被调用;如果是一个view的名字,urlresolvers.reverse()将会被用来反向解析这个名字;如果是一个url,将会重定向到这个url。

4.也可以直接return一个HttpResponse对象。
HttpResponse也是定义在django.http中的。
直接返回一个HttpResponse对象的话,这个对象中应该有模板和模板中的变量。用法如下:
from django.http import HttpResponse
from django.template import loader, Template, Context
t = loader.get_template('polls/index.html')
c = Context({
    'latest_poll_list': latest_poll_list,
    })
return HttpResponse(t.render(c))

5.generic views
django.views.generic.simple.direct_to_template
django.views.generic.simple.redirect_to
django.views.generic.list_detail.object_list
django.views.generic.list_detail.object_detail

阅读(2422) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~