Python论坛  - 讨论区

标题:[python-chinese] Django 模板的缺陷

2007年10月21日 星期日 01:37

@@ askfor在gmail.com
星期日 十月 21 01:37:00 HKT 2007

ÎÒÏë¿ÉÒÔÔÚurlÅäÖÃÎļþÀïÃæÈ¥´«some_variable£¬¿ÉÒÔÃâȥһЩÖظ´´úÂë
ÔÚʹÓÃgeneric_viewµÄʱºò£º
querysetÖмÓÈëextra_context ¾Í¿ÉÒÔÁË
    'extra_context' : {'some_variable':some_variable,}
Èç¹û²»ÊÇʹÓÃgeneric_view
some_variable
urlpatterns = patterns('app.views',
    (r'^app/a/$', 'view_a', {'some_variable': some_variable}),
    (r'^app/b/$', 'view_b', {'some_variable': some_variable}),
)

»òÕßÊÇ°Ñÿ¸öappµÄview¶¼·Öϸһµã£¬±ÈÈçÿ¸öview¶¼ÄÜÄóöÀ´×öÒ»¸öblock£¬×îºóÔÙ°ÑÕâЩview×éºÏÆðÀ´×÷Ϊһ¸öÒ³ÃæÊä³ö¡£
±ÈÈçÓÐblog,tag 2¸öapp£¬ÏëÔÚblogµÄÿҳ¶¼¼ÓÒ»¸ötag list¡£
blogµÄview¿ÉÒÔ·Ö³É blog_list, blog_detail¡£
tagµÄview¿ÉÒÔÓÐÒ»¸ö tag_list¡£

blog µÄÄ£°å´ó¸Å¿ÉÒÔÊÇ
{% extends "base.html" %}
{{ content}}
Ê×Ò³¶ÔÓ¦µÄview¾Í¿ÉÒÔÊÇ°Ñ blog.view.blog_list·µ»ØµÄÖµ ¸³Öµµ½content±äÁ¿£¬tag.view.tag_list ·µ»ØµÄÖµ¸³¸øsidebar±äÁ¿¡£ ijƪblogÐÅÏ¢¶ÔÓ¦µÄview ¾Í¿ÉÒÔ°Ñblog.view.blog_detail·µ»ØµÄÖµ¸³¸øcontent. tag.view.tag_list ·µ»ØµÄÖµ»¹ÊǸ³¸øsidebar±äÁ¿¡£ ÕâÑùµÄ»°Óжà¸öappÒ²¿ÉÒԱȽϷ½±ãµÄ×éºÏµ½Ò³Ã棬¶ø²»ÓÃÿ¸öÒ³Ã涼ҪÔÚviewÖаÑËùÓÐmodel¶¼Import¹ýÀ´¡£ µ«ÊÇÕâÑùµÄ»°¾Í²»ÄÜÖ±½ÓʹÓÃgeneric_viewÁË£¬µÃ¼ä½ÓµÄÓà from django.views.generic.list_detail import object_detail def blog_detail(request,slug): post = Post.objects.filter(slug=slug) return object_detail(request, queryset=post) On 8/29/07, Neil(ľҰºü) <chenrong2003在gmail.com> wrote: > > > > > »¹ÊDz»Ì«¶®¡£djangoÖеÄÄ£°å£¬×ÓÄ£°å¿ÉÒÔʹÓø¸Ä£°åµÄ±äÁ¿°¡¡£ > > > > ===== > ±ÈÈ縸ģ°å½Ð×ö base.html, ÓÐÁ½¸ö×ÓÄ£°å a.html, b.html ·Ö±ð¶ÔÓ¦ÓÚ view_a ºÍ view_b, > ÔÚ base.html ÀïÃæÎÒ¶¨ÒåÒ»¸ö {{ some_variable }} > > ¶øÕâ¸ö some_variable ÊÇÒªÔÚ view_a ºÍ view_b ÖÐÖ¸¶¨¸øÄ£°åµÄ£¬ÕâÑùÈç¹û×ÓÄ£°åºÜ¶à¾ÍºÜÖظ´¡£ > ÎÒµÄÒâ˼ÊÇ base.html ²»ÄÜ´îÅäÒ»¸ö×Ô¼ºµÄ view_base£¬ÔÚÀïÃæÖ´ÐÐ×Ô¼ºµÄÄ£°å±äÁ¿¸³ÖµÂß¼­¡£ÕâÑù¾Í»áµ¼ÖÂÉÏÊöµÄÇé¿ö³öÏÖ¡£ > > > > > > > > ÒÔÇ°ÓÐÈËд¹ýÒ»¸ötag£¬ÊÇ¿ÉÒÔ²åÈë´úÂëµÄ£¬ºÃÏó·ÅÔÚÁË djangosnippets.org ÉÏ£¬ÄãÕÒÕÒ¿´£¬ÎÒ²»¼ÇµÃÁË¡£ > _______________________________________________ > python-chinese > Post: send python-chinese在lists.python.cn > Subscribe: send subscribe to python-chinese-request在lists.python.cn > Unsubscribe: send unsubscribe to python-chinese-request在lists.python.cn > Detail Info: http://python.cn/mailman/listinfo/python-chinese -------------- 下一部分 -------------- Ò»¸öHTML¸½¼þ±»ÒƳý... URL: http://python.cn/pipermail/python-chinese/attachments/20071021/86958683/attachment.html

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2007年10月21日 星期日 02:20

@@ askfor在gmail.com
星期日 十月 21 02:20:39 HKT 2007

return object_detail(request, queryset=post) Õâ¸ö·µ»ØµÄÊÇ HttpResponse ¶ÔÏó¡£
¿ÉÄܵÃÓà .contentÀ´È¡htmlÄÚÈÝ
ºóÃæ˵µÄÄǸöÎÒ»¹Ã»ÊÔ¹ý£¬Ö»ÊÇÒ»¸öÕâÑùµÄÏë·¨ :p


On 10/21/07, @@ <askfor在gmail.com> wrote:
>
> ÎÒÏë¿ÉÒÔÔÚurlÅäÖÃÎļþÀïÃæÈ¥´«some_variable£¬¿ÉÒÔÃâȥһЩÖظ´´úÂë
> ÔÚʹÓÃgeneric_viewµÄʱºò£º
> querysetÖмÓÈëextra_context ¾Í¿ÉÒÔÁË
>     'extra_context' : {'some_variable':some_variable,}
> Èç¹û²»ÊÇʹÓÃgeneric_view
> some_variable
> urlpatterns = patterns('app.views',
>     (r'^app/a/$', 'view_a', {'some_variable': some_variable}),
>     (r'^app/b/$', 'view_b', {'some_variable': some_variable}),
> )
>
> »òÕßÊÇ°Ñÿ¸öappµÄview¶¼·Öϸһµã£¬±ÈÈçÿ¸öview¶¼ÄÜÄóöÀ´×öÒ»¸öblock£¬×îºóÔÙ°ÑÕâЩview×éºÏÆðÀ´×÷Ϊһ¸öÒ³ÃæÊä³ö¡£
> ±ÈÈçÓÐblog,tag 2¸öapp£¬ÏëÔÚblogµÄÿҳ¶¼¼ÓÒ»¸ötag list¡£
> blogµÄview¿ÉÒÔ·Ö³É blog_list, blog_detail¡£
> tagµÄview¿ÉÒÔÓÐÒ»¸ö tag_list¡£
>
> blog µÄÄ£°å´ó¸Å¿ÉÒÔÊÇ
> {% extends "base.html" %}
> 
> {{ content}} > > > {{side_bar}} > > Ê×Ò³¶ÔÓ¦µÄview¾Í¿ÉÒÔÊÇ°Ñ blog.view.blog_list·µ»ØµÄÖµ ¸³Öµµ½content±äÁ¿£¬tag.view.tag_list > ·µ»ØµÄÖµ¸³¸øsidebar±äÁ¿¡£ > ijƪblogÐÅÏ¢¶ÔÓ¦µÄview ¾Í¿ÉÒÔ°Ñblog.view.blog_detail·µ»ØµÄÖµ¸³¸øcontent. tag.view.tag_list > ·µ»ØµÄÖµ»¹ÊǸ³¸øsidebar±äÁ¿¡£ > ÕâÑùµÄ»°Óжà¸öappÒ²¿ÉÒԱȽϷ½±ãµÄ×éºÏµ½Ò³Ã棬¶ø²»ÓÃÿ¸öÒ³Ã涼ҪÔÚviewÖаÑËùÓÐmodel¶¼Import¹ýÀ´¡£ > µ«ÊÇÕâÑùµÄ»°¾Í²»ÄÜÖ±½ÓʹÓÃgeneric_viewÁË£¬µÃ¼ä½ÓµÄÓà > from django.views.generic.list_detail import object_detail > def blog_detail(request,slug): > post = Post.objects.filter(slug=slug) > return object_detail(request, queryset=post) > > > On 8/29/07, Neil(ľҰºü) <chenrong2003在gmail.com> wrote: > > > > > > > > »¹ÊDz»Ì«¶®¡£djangoÖеÄÄ£°å£¬×ÓÄ£°å¿ÉÒÔʹÓø¸Ä£°åµÄ±äÁ¿°¡¡£ > > > > > > ===== > > ±ÈÈ縸ģ°å½Ð×ö base.html, ÓÐÁ½¸ö×ÓÄ£°å a.html, b.html ·Ö±ð¶ÔÓ¦ÓÚ view_a ºÍ view_b, > > ÔÚ base.html ÀïÃæÎÒ¶¨ÒåÒ»¸ö {{ some_variable }} > > > > ¶øÕâ¸ö some_variable ÊÇÒªÔÚ view_a ºÍ view_b ÖÐÖ¸¶¨¸øÄ£°åµÄ£¬ÕâÑùÈç¹û×ÓÄ£°åºÜ¶à¾ÍºÜÖظ´¡£ > > ÎÒµÄÒâ˼ÊÇ base.html ²»ÄÜ´îÅäÒ»¸ö×Ô¼ºµÄ view_base£¬ÔÚÀïÃæÖ´ÐÐ×Ô¼ºµÄÄ£°å±äÁ¿¸³ÖµÂß¼­¡£ÕâÑù¾Í»áµ¼ÖÂÉÏÊöµÄÇé¿ö³öÏÖ¡£ > > > > > > > > > > > > > ÒÔÇ°ÓÐÈËд¹ýÒ»¸ötag£¬ÊÇ¿ÉÒÔ²åÈë´úÂëµÄ£¬ºÃÏó·ÅÔÚÁË djangosnippets.org ÉÏ£¬ÄãÕÒÕÒ¿´£¬ÎÒ²»¼ÇµÃÁË¡£ > > _______________________________________________ > > python-chinese > > Post: send python-chinese在lists.python.cn > > Subscribe: send subscribe to python-chinese-request在lists.python.cn > > Unsubscribe: send unsubscribe to python-chinese-request在lists.python.cn > > Detail Info: http://python.cn/mailman/listinfo/python-chinese > > > -------------- 下一部分 -------------- Ò»¸öHTML¸½¼þ±»ÒƳý... URL: http://python.cn/pipermail/python-chinese/attachments/20071021/484b83fd/attachment.htm

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2007年10月21日 星期日 17:42

Nicholas Ding nicholasdsj在gmail.com
星期日 十月 21 17:42:40 HKT 2007

ÎÒҪôдcontext_processor»òÕ߸øviewдһ¸ödecoratorÀ´½â¾ö¡£

On 10/21/07, @@ <askfor在gmail.com> wrote:
>
> return object_detail(request, queryset=post) Õâ¸ö·µ»ØµÄÊÇ HttpResponse ¶ÔÏó¡£
> ¿ÉÄܵÃÓà .contentÀ´È¡htmlÄÚÈÝ
> ºóÃæ˵µÄÄǸöÎÒ»¹Ã»ÊÔ¹ý£¬Ö»ÊÇÒ»¸öÕâÑùµÄÏë·¨ :p
>
>
> On 10/21/07, @@ <askfor在gmail.com> wrote:
> >
> > ÎÒÏë¿ÉÒÔÔÚurlÅäÖÃÎļþÀïÃæÈ¥´«some_variable£¬¿ÉÒÔÃâȥһЩÖظ´´úÂë
> > ÔÚʹÓÃgeneric_viewµÄʱºò£º
> > querysetÖмÓÈëextra_context ¾Í¿ÉÒÔÁË
> >     'extra_context' : {'some_variable':some_variable,}
> > Èç¹û²»ÊÇʹÓÃgeneric_view
> > some_variable
> > urlpatterns = patterns('app.views',
> >     (r'^app/a/$', 'view_a', {'some_variable': some_variable}),
> >     (r'^app/b/$', 'view_b', {'some_variable': some_variable}),
> > )
> >
> > »òÕßÊÇ°Ñÿ¸öappµÄview¶¼·Öϸһµã£¬±ÈÈçÿ¸öview¶¼ÄÜÄóöÀ´×öÒ»¸öblock£¬×îºóÔÙ°ÑÕâЩview×éºÏÆðÀ´×÷Ϊһ¸öÒ³ÃæÊä³ö¡£
> > ±ÈÈçÓÐblog,tag 2¸öapp£¬ÏëÔÚblogµÄÿҳ¶¼¼ÓÒ»¸ötag list¡£
> > blogµÄview¿ÉÒÔ·Ö³É blog_list, blog_detail¡£
> > tagµÄview¿ÉÒÔÓÐÒ»¸ö tag_list¡£
> >
> > blog µÄÄ£°å´ó¸Å¿ÉÒÔÊÇ
> > {% extends "base.html" %}
> > 
> > {{ content}} > > > > > > {{side_bar}} > > > > Ê×Ò³¶ÔÓ¦µÄview¾Í¿ÉÒÔÊÇ°Ñ blog.view.blog_list·µ»ØµÄÖµ ¸³Öµµ½content±äÁ¿£¬tag.view.tag_list > > ·µ»ØµÄÖµ¸³¸øsidebar±äÁ¿¡£ > > ijƪblogÐÅÏ¢¶ÔÓ¦µÄview ¾Í¿ÉÒÔ°Ñblog.view.blog_detail·µ»ØµÄÖµ¸³¸øcontent. > > tag.view.tag_list·µ»ØµÄÖµ»¹ÊǸ³¸øsidebar±äÁ¿¡£ > > ÕâÑùµÄ»°Óжà¸öappÒ²¿ÉÒԱȽϷ½±ãµÄ×éºÏµ½Ò³Ã棬¶ø²»ÓÃÿ¸öÒ³Ã涼ҪÔÚviewÖаÑËùÓÐmodel¶¼Import¹ýÀ´¡£ > > µ«ÊÇÕâÑùµÄ»°¾Í²»ÄÜÖ±½ÓʹÓÃgeneric_viewÁË£¬µÃ¼ä½ÓµÄÓà > > from django.views.generic.list_detail import object_detail > > def blog_detail(request,slug): > > post = Post.objects.filter(slug=slug) > > return object_detail(request, queryset=post) > > > > > > On 8/29/07, Neil(ľҰºü) <chenrong2003在gmail.com > wrote: > > > > > > > > > > > »¹ÊDz»Ì«¶®¡£djangoÖеÄÄ£°å£¬×ÓÄ£°å¿ÉÒÔʹÓø¸Ä£°åµÄ±äÁ¿°¡¡£ > > > > > > > > ===== > > > ±ÈÈ縸ģ°å½Ð×ö base.html, ÓÐÁ½¸ö×ÓÄ£°å a.html, b.html ·Ö±ð¶ÔÓ¦ÓÚ view_a ºÍ view_b, > > > ÔÚ base.html ÀïÃæÎÒ¶¨ÒåÒ»¸ö {{ some_variable }} > > > > > > ¶øÕâ¸ö some_variable ÊÇÒªÔÚ view_a ºÍ view_b ÖÐÖ¸¶¨¸øÄ£°åµÄ£¬ÕâÑùÈç¹û×ÓÄ£°åºÜ¶à¾ÍºÜÖظ´¡£ > > > ÎÒµÄÒâ˼ÊÇ base.html ²»ÄÜ´îÅäÒ»¸ö×Ô¼ºµÄ view_base£¬ÔÚÀïÃæÖ´ÐÐ×Ô¼ºµÄÄ£°å±äÁ¿¸³ÖµÂß¼­¡£ÕâÑù¾Í»áµ¼ÖÂÉÏÊöµÄÇé¿ö³öÏÖ¡£ > > > > > > > > > > > > > > > > > > ÒÔÇ°ÓÐÈËд¹ýÒ»¸ötag£¬ÊÇ¿ÉÒÔ²åÈë´úÂëµÄ£¬ºÃÏó·ÅÔÚÁË djangosnippets.org ÉÏ£¬ÄãÕÒÕÒ¿´£¬ÎÒ²»¼ÇµÃÁË¡£ > > > _______________________________________________ > > > python-chinese > > > Post: send python-chinese在lists.python.cn > > > Subscribe: send subscribe to python-chinese-request在lists.python.cn > > > Unsubscribe: send unsubscribe to python-chinese-request在lists.python.cn > > > Detail Info: http://python.cn/mailman/listinfo/python-chinese > > > > > > > > _______________________________________________ > python-chinese > Post: send python-chinese在lists.python.cn > Subscribe: send subscribe to python-chinese-request在lists.python.cn > Unsubscribe: send unsubscribe to python-chinese-request在lists.python.cn > Detail Info: http://python.cn/mailman/listinfo/python-chinese > -- Nicholas @ Nirvana Studio http://www.nirvanastudio.org -------------- 下一部分 -------------- Ò»¸öHTML¸½¼þ±»ÒƳý... URL: http://python.cn/pipermail/python-chinese/attachments/20071021/1dcb4891/attachment.htm

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2007年10月22日 星期一 11:39

doudou doudou array.doudou在gmail.com
星期一 十月 22 11:39:32 HKT 2007

推荐cheetah,速度绝对是python这些模板里面的first class,稳定性也是没的说的。

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2007年10月22日 星期一 11:46

Bruce Wang number5在gmail.com
星期一 十月 22 11:46:00 HKT 2007

On 10/22/07, doudou doudou <array.doudou在gmail.com> wrote:
>
> 推荐cheetah,速度绝对是python这些模板里面的first class,稳定性也是没的说的。
>

Cheetah 没有Mako 快 ;)

受不了Django 模板的,改投 TurboGears/Pylons吧  XD


-- 
simple is good
http://brucewang.net
http://twitter.com/number5
http://www.linkist.com
skype: number5
-------------- 下一部分 --------------
一个HTML附件被移除...
URL: http://python.cn/pipermail/python-chinese/attachments/20071022/e5b22858/attachment.html 

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2007年10月22日 星期一 15:16

Neil(木野狐) chenrong2003在gmail.com
星期一 十月 22 15:16:22 HKT 2007

没想到这么久了,还有朋友看到这个帖子。
感谢各位的信息,我现在用 Middleware 和 context_processor 解决了一些问题,但还是不够理想。

在 07-10-22,Bruce Wang<number5在gmail.com> 写道:
>
>
> On 10/22/07, doudou doudou <array.doudou在gmail.com> wrote:
> > 推荐cheetah,速度绝对是python这些模板里面的first class,稳定性也是没的说的。
> >
>
> Cheetah 没有Mako 快 ;)
>
> 受不了Django 模板的,改投 TurboGears/Pylons吧  XD
>
>
> --
> simple is good
>  http://brucewang.net
> http://twitter.com/number5
> http://www.linkist.com
> skype: number5
> _______________________________________________
> python-chinese
> Post: send python-chinese在lists.python.cn
> Subscribe: send subscribe to
> python-chinese-request在lists.python.cn
> Unsubscribe: send unsubscribe to
> python-chinese-request在lists.python.cn
> Detail Info:
> http://python.cn/mailman/listinfo/python-chinese
>

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2007年10月22日 星期一 15:21

Neil(木野狐) chenrong2003在gmail.com
星期一 十月 22 15:21:44 HKT 2007

url 配置中添加,则只能是一些已知的变量。如果我需要共享的变量是从 url 中的参数值计算得知,这个方法就不适用了。归根到底,django
的 view 是函数而不是类,这个就没法继承达到更好的重用。

在 07-10-21,@@<askfor在gmail.com> 写道:
> 我想可以在url配置文件里面去传some_variable,可以免去一些重复代码
> 在使用generic_view的时候:
> queryset中加入extra_context 就可以了
>     'extra_context' : {'some_variable':some_variable,}
> 如果不是使用generic_view
> some_variable
> urlpatterns = patterns('app.views',
>     (r'^app/a/$', 'view_a', {'some_variable': some_variable}),
>     (r'^app/b/$', 'view_b', {'some_variable': some_variable}),
> )
>
> 或者是把每个app的view都分细一点,比如每个view都能拿出来做一个block,最后再把这些view组合起来作为一个页面输出。
> 比如有blog,tag 2个app,想在blog的每页都加一个tag list。
> blog的view可以分成 blog_list, blog_detail。
> tag的view可以有一个 tag_list。
>
> blog 的模板大概可以是
> {% extends "base.html" %}
> 
> {{ content}} > > > {{side_bar}} > > 首页对应的view就可以是把 blog.view.blog_list返回的值 > 赋值到content变量,tag.view.tag_list返回的值赋给sidebar变量。 > 某篇blog信息对应的view 就可以把blog.view.blog_detail返回的值赋给content. > tag.view.tag_list返回的值还是赋给sidebar变量。 > 这样的话有多个app也可以比较方便的组合到页面,而不用每个页面都要在view中把所有model都Import过来。 > 但是这样的话就不能直接使用generic_view了,得间接的用 > from django.views.generic.list_detail import object_detail > def blog_detail(request,slug): > post = Post.objects.filter(slug=slug) > return object_detail(request, queryset=post) > > > On 8/29/07, Neil(木野狐) <chenrong2003在gmail.com> wrote: > > > > > > > > 还是不太懂。django中的模板,子模板可以使用父模板的变量啊。 > > > > > > ===== > > 比如父模板叫做 base.html, 有两个子模板 a.html, b.html 分别对应于 view_a 和 view_b, > > 在 base.html 里面我定义一个 {{ some_variable }} > > > > 而这个 some_variable 是要在 view_a 和 view_b 中指定给模板的,这样如果子模板很多就很重复。 > > 我的意思是 base.html 不能搭配一个自己的 > view_base,在里面执行自己的模板变量赋值逻辑。这样就会导致上述的情况出现。 > > > > > > > > > > > > > 以前有人写过一个tag,是可以插入代码的,好象放在了 djangosnippets.org 上,你找找看,我不记得了。 > > _______________________________________________ > > python-chinese > > Post: send python-chinese在lists.python.cn > > Subscribe: send subscribe to > python-chinese-request在lists.python.cn > > Unsubscribe: send unsubscribe to > python-chinese-request在lists.python.cn > > Detail Info: > http://python.cn/mailman/listinfo/python-chinese > > > _______________________________________________ > python-chinese > Post: send python-chinese在lists.python.cn > Subscribe: send subscribe to > python-chinese-request在lists.python.cn > Unsubscribe: send unsubscribe to > python-chinese-request在lists.python.cn > Detail Info: > http://python.cn/mailman/listinfo/python-chinese >

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2007年10月22日 星期一 15:31

vicalloy zbirder在gmail.com
星期一 十月 22 15:31:59 HKT 2007

我现在是写个单独的函数对context进行初始化。

:)任何一个东西都不可能100%的让人满意的。
JAVA就是,大家对现有的东西不满意,然后就去整个新的东西出来。
搞得框架慢天飞。
我现在是只要只要不太坏,就尽量用原版的:(

继承就不用了,感觉将view做成类以后就将问题给复杂化了。
不过我倒搜很希望Django能提供类似jsp include之类的功能,直接将页面的执行结果include过来。

在 07-10-22,Neil(木野狐)<chenrong2003在gmail.com> 写道:
> url 配置中添加,则只能是一些已知的变量。如果我需要共享的变量是从 url 中的参数值计算得知,这个方法就不适用了。归根到底,django
> 的 view 是函数而不是类,这个就没法继承达到更好的重用。

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2007年10月22日 星期一 16:14

limodou limodou在gmail.com
星期一 十月 22 16:14:40 HKT 2007

On 10/22/07, vicalloy <zbirder在gmail.com> wrote:
> 我现在是写个单独的函数对context进行初始化。
>
> :)任何一个东西都不可能100%的让人满意的。
> JAVA就是,大家对现有的东西不满意,然后就去整个新的东西出来。
> 搞得框架慢天飞。
> 我现在是只要只要不太坏,就尽量用原版的:(
>
> 继承就不用了,感觉将view做成类以后就将问题给复杂化了。
> 不过我倒搜很希望Django能提供类似jsp include之类的功能,直接将页面的执行结果include过来。
>
django有include功能.我还写过一个叫catch的tag.


-- 
I like python!
UliPad <>: http://code.google.com/p/ulipad/
meide <>: http://code.google.com/p/meide/
My Blog: http://www.donews.net/limodou

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2007年10月22日 星期一 16:28

vicalloy zbirder在gmail.com
星期一 十月 22 16:28:56 HKT 2007

Django的那个include只是将模板给include进去了,不是include执行结果。
比如一个排行榜的页面,你不单要incude模板,还得在代码中将相应的东西放到context里。

在 07-10-22,limodou<limodou在gmail.com> 写道:
> django有include功能.我还写过一个叫catch的tag.

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2007年10月22日 星期一 16:32

limodou limodou在gmail.com
星期一 十月 22 16:32:59 HKT 2007

On 10/22/07, vicalloy <zbirder在gmail.com> wrote:
> Django的那个include只是将模板给include进去了,不是include执行结果。
> 比如一个排行榜的页面,你不单要incude模板,还得在代码中将相应的东西放到context里。
>
jsp的include不这样吗?

-- 
I like python!
UliPad <>: http://code.google.com/p/ulipad/
meide <>: http://code.google.com/p/meide/
My Blog: http://www.donews.net/limodou

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2007年10月22日 星期一 17:10

vicalloy zbirder在gmail.com
星期一 十月 22 17:10:56 HKT 2007

JSP的include可以直接将某个页面的执行结果incude过来。
比如你可以将一个排行榜做成一个单独的页面hot.jsp、hot.do(如果用了框架)。
然后你只要将这个页面给include到主页面就可以了。
在include的时候还可以带一些相关的参数。

在 07-10-22,limodou<limodou在gmail.com> 写道:
> On 10/22/07, vicalloy <zbirder在gmail.com> wrote:
> > Django的那个include只是将模板给include进去了,不是include执行结果。
> > 比如一个排行榜的页面,你不单要incude模板,还得在代码中将相应的东西放到context里。
> >
> jsp的include不这样吗?
>

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2007年10月23日 星期二 08:40

limodou limodou在gmail.com
星期二 十月 23 08:40:51 HKT 2007

On 10/22/07, vicalloy <zbirder在gmail.com> wrote:
> JSP的include可以直接将某个页面的执行结果incude过来。
> 比如你可以将一个排行榜做成一个单独的页面hot.jsp、hot.do(如果用了框架)。
> 然后你只要将这个页面给include到主页面就可以了。
> 在include的时候还可以带一些相关的参数。
>
如果jsp中也需要外部变量,如何传递.与django不一样吗?在django中,include的模板一样可以有变量和无变量.不管怎么样总得有个地方传变量吧.使用我写的catch
tag就可以传参数了.

-- 
I like python!
UliPad <>: http://code.google.com/p/ulipad/
meide <>: http://code.google.com/p/meide/
My Blog: http://www.donews.net/limodou

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2007年10月23日 星期二 09:11

vicalloy zbirder在gmail.com
星期二 十月 23 09:11:20 HKT 2007

应当不是你理解的那样。
JSP里include是一个执行结果,也就是说是一个网页编译好后的结果。
但有些网页可能需要带参数的,比如热门排行,你可能需要传一个显示前XX条记录作为参数。对于翻页,你需要传递页面编号。
被include的页面是可以被单独在浏览器中被访问的。

这么说吧,被include的东西是一个单独的页面请求。
include就是将这个页面的执行结果,插入到被include的地方。
被include的页面和父页面没有太多的逻辑关系(不存在变量共享什么的)。

在 07-10-23,limodou<limodou在gmail.com> 写道:
> 如果jsp中也需要外部变量,如何传递.与django不一样吗?在django中,include的模板一样可以有变量和无变量.不管怎么样总得有个地方传变量吧.使用我写的catch
> tag就可以传参数了.

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2007年10月23日 星期二 09:56

limodou limodou在gmail.com
星期二 十月 23 09:56:17 HKT 2007

On 10/23/07, vicalloy <zbirder在gmail.com> wrote:
> 应当不是你理解的那样。
> JSP里include是一个执行结果,也就是说是一个网页编译好后的结果。
> 但有些网页可能需要带参数的,比如热门排行,你可能需要传一个显示前XX条记录作为参数。对于翻页,你需要传递页面编号。
> 被include的页面是可以被单独在浏览器中被访问的。
>
> 这么说吧,被include的东西是一个单独的页面请求。
> include就是将这个页面的执行结果,插入到被include的地方。
> 被include的页面和父页面没有太多的逻辑关系(不存在变量共享什么的)。
>
如果是单独访问那是不行的,因为在django中模板不是一个可以直接访问的东西,在django中view才可以访问.
-- 
I like python!
UliPad <>: http://code.google.com/p/ulipad/
meide <>: http://code.google.com/p/meide/
My Blog: http://www.donews.net/limodou

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2007年10月23日 星期二 10:08

vicalloy zbirder在gmail.com
星期二 十月 23 10:08:44 HKT 2007

恩,所以Django里include的时候在include模板的同时,还要在代码做相应的处理,将模板所需要的变量放进去。
无法实现被include页面逻辑的完全独立。

对于django来说,如果要做到和jsp include一样,就是将view给include。

在 07-10-23,limodou<limodou在gmail.com> 写道:
> 如果是单独访问那是不行的,因为在django中模板不是一个可以直接访问的东西,在django中view才可以访问.

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2007年10月23日 星期二 10:13

limodou limodou在gmail.com
星期二 十月 23 10:13:03 HKT 2007

On 10/23/07, vicalloy <zbirder在gmail.com> wrote:
> 恩,所以Django里include的时候在include模板的同时,还要在代码做相应的处理,将模板所需要的变量放进去。
> 无法实现被include页面逻辑的完全独立。
>
> 对于django来说,如果要做到和jsp include一样,就是将view给include。
>
> 在 07-10-23,limodou<limodou在gmail.com> 写道:
> > 如果是单独访问那是不行的,因为在django中模板不是一个可以直接访问的东西,在django中view才可以访问.

不过在django中不能简单地把view给include,因为view返回的是符合cgi格式的数据,不是简单的html.可能需要别的方法.

-- 
I like python!
UliPad <>: http://code.google.com/p/ulipad/
meide <>: http://code.google.com/p/meide/
My Blog: http://www.donews.net/limodou

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2007年10月23日 星期二 10:19

@@ askfor在gmail.com
星期二 十月 23 10:19:26 HKT 2007

ºÍjava²»Ò»ÑùµÄÊÇjava´«µÝµÄ²ÎÊý¶¼ÔÚ httprequestÀïÁË¡£
djangoµÄ²¿·Ö²ÎÊýÊÇÔÚurlÀïµÄ¡£ËùÒÔdjangoû·¨¾ÍÖ±½Ó¼òµ¥µÄ´«Ò»¸örequest¹ýÈ¥


On 10/23/07, limodou <limodou在gmail.com> wrote:
>
> On 10/23/07, vicalloy <zbirder在gmail.com> wrote:
> > ¶÷£¬ËùÒÔDjangoÀïincludeµÄʱºòÔÚincludeÄ£°åµÄͬʱ£¬»¹ÒªÔÚ´úÂë×öÏàÓ¦µÄ´¦Àí£¬½«Ä£°åËùÐèÒªµÄ±äÁ¿·Å½øÈ¥¡£
> > ÎÞ·¨ÊµÏÖ±»includeÒ³ÃæÂß¼­µÄÍêÈ«¶ÀÁ¢¡£
> >
> > ¶ÔÓÚdjangoÀ´Ëµ£¬Èç¹ûÒª×öµ½ºÍjsp includeÒ»Ñù£¬¾ÍÊǽ«view¸øinclude¡£
> >
> > ÔÚ 07-10-23£¬limodou<limodou在gmail.com> дµÀ£º
> > > Èç¹ûÊǵ¥¶À·ÃÎÊÄÇÊDz»ÐеÄ,ÒòΪÔÚdjangoÖÐÄ£°å²»ÊÇÒ»¸ö¿ÉÒÔÖ±½Ó·ÃÎʵĶ«Î÷,ÔÚdjangoÖÐview²Å¿ÉÒÔ·ÃÎÊ.
>
> ²»¹ýÔÚdjangoÖв»Äܼòµ¥µØ°Ñview¸øinclude,ÒòΪview·µ»ØµÄÊÇ·ûºÏcgi¸ñʽµÄÊý¾Ý,²»ÊǼòµ¥µÄhtml.¿ÉÄÜÐèÒª±ðµÄ·½·¨.
>
> --
> I like python!
> UliPad <>: http://code.google.com/p/ulipad/
> meide <>: http://code.google.com/p/meide/
> My Blog: http://www.donews.net/limodou
> _______________________________________________
> python-chinese
> Post: send python-chinese在lists.python.cn
> Subscribe: send subscribe to python-chinese-request在lists.python.cn
> Unsubscribe: send unsubscribe to  python-chinese-request在lists.python.cn
> Detail Info: http://python.cn/mailman/listinfo/python-chinese
-------------- 下一部分 --------------
Ò»¸öHTML¸½¼þ±»ÒƳý...
URL: http://python.cn/pipermail/python-chinese/attachments/20071023/0633cd50/attachment.htm 

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

如下红色区域有误,请重新填写。

    你的回复:

    请 登录 后回复。还没有在Zeuux哲思注册吗?现在 注册 !

    Zeuux © 2025

    京ICP备05028076号