Python论坛  - 讨论区

标题:[python-chinese] 今天想到了关于 Django 中 view 的组织方式问题

2007年03月26日 星期一 12:32

Neil(木野狐) chenrong2003在gmail.com
星期一 三月 26 12:32:43 HKT 2007

之前一直做 ASP.NET, 对于一个页面文件一个 view 的做法感觉很好。而 django 中在一个文件里很多个函数,每一个代表一个
view. 这样的做法在网站程序复杂化后,查找代码很不方便。当然这个问题有解决的办法,就是多拆分成 applications.
不过,有时候一个功能到底应该归于哪个 app 还真的不是一个简单的问题。并且多个 apps 会导致每次 syncdb 都要考虑很多个
model 文件做一遍,挺麻烦。我更需要的是一种简易的拆分机制。

因此我现在基本上是通过物理文件的方式,把同类的 views 放到一个文件里。即 views_xxx.py, views_yyy.py
的组织形式,反正 django 是通过 urls 来分派请求的,这一点挺方便。

有没有必要做成像 ASP.NET 那样一个文件一个 view 呢?好多选择还没想明白。先瞎写这么多吧。

请大家讨论,谢谢。

致,
         礼

木野狐

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

2007年03月26日 星期一 12:44

yi huang yi.codeplayer在gmail.com
星期一 三月 26 12:44:33 HKT 2007

>
> 之前一直做 ASP.NET <http://asp.net/>, 对于一个页面文件一个 view 的做法感觉很好。而 django
> 中在一个文件里很多个函数,每一个代表一个
> view. 这样的做法在网站程序复杂化后,查找代码很不方便。当然这个问题有解决的办法,就是多拆分成 applications.
> 不过,有时候一个功能到底应该归于哪个 app 还真的不是一个简单的问题。并且多个 apps 会导致每次 syncdb 都要考虑很多个
> model 文件做一遍,挺麻烦。我更需要的是一种简易的拆分机制。
>
> 因此我现在基本上是通过物理文件的方式,把同类的 views 放到一个文件里。即 views_xxx.py, views_yyy.py
> 的组织形式,反正 django 是通过 urls 来分派请求的,这一点挺方便。
>
> 有没有必要做成像 ASP.NET <http://asp.net/> 那样一个文件一个 view 呢?好多选择还没想明白。先瞎写这么多吧。
>
> 请大家讨论,谢谢。
>
> 致,
>>
> 木野狐
>

或者可以把 views 整成一个包。

甚至在 views\__init__.py 中写上:
from someviews1 import *
from someviews2 import *

这种方式的分解对 models 特别有效。

-- 
http://codeplayer.blogspot.com/
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://python.cn/pipermail/python-chinese/attachments/20070326/bf6a4c8c/attachment.html 

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

2007年03月26日 星期一 12:45

limodou limodou在gmail.com
星期一 三月 26 12:45:57 HKT 2007

On 3/26/07, Neil(木野狐) <chenrong2003在gmail.com> wrote:
> 之前一直做 ASP.NET, 对于一个页面文件一个 view 的做法感觉很好。而 django 中在一个文件里很多个函数,每一个代表一个
> view. 这样的做法在网站程序复杂化后,查找代码很不方便。当然这个问题有解决的办法,就是多拆分成 applications.
> 不过,有时候一个功能到底应该归于哪个 app 还真的不是一个简单的问题。并且多个 apps 会导致每次 syncdb 都要考虑很多个
> model 文件做一遍,挺麻烦。我更需要的是一种简易的拆分机制。
>
> 因此我现在基本上是通过物理文件的方式,把同类的 views 放到一个文件里。即 views_xxx.py, views_yyy.py
> 的组织形式,反正 django 是通过 urls 来分派请求的,这一点挺方便。
>
> 有没有必要做成像 ASP.NET 那样一个文件一个 view 呢?好多选择还没想明白。先瞎写这么多吧。
>
> 请大家讨论,谢谢。
>
这个可能看个人的管理方式。你的划分粒度很小,而app是以一个完整的功能还说的。在一个复杂一些的app,可以把view分成几个文件这是有的。不过细到一个view一个文件,会造成文件太多,也未必方便。


-- 
I like python!
UliPad <>: http://wiki.woodpecker.org.cn/moin/UliPad
My Blog: http://www.donews.net/limodou

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

2007年03月26日 星期一 13:08

Neil(木野狐) chenrong2003在gmail.com
星期一 三月 26 13:08:39 HKT 2007

yi huang
>> agree, 我比较倾向于把 views 做成包。

limodou
"不过细到一个view一个文件,会造成文件太多,也未必方便。"
>> 文件多会对性能造成影响吗?比如有很多 views 文件需要导入。而写在一个文件中是否在多次请求之间,有一定的缓存机制,能节省 import 的时间?


在 07-3-26,limodou<limodou在gmail.com> 写道:
> On 3/26/07, Neil(木野狐) <chenrong2003在gmail.com> wrote:
> > 之前一直做 ASP.NET, 对于一个页面文件一个 view 的做法感觉很好。而 django 中在一个文件里很多个函数,每一个代表一个
> > view. 这样的做法在网站程序复杂化后,查找代码很不方便。当然这个问题有解决的办法,就是多拆分成 applications.
> > 不过,有时候一个功能到底应该归于哪个 app 还真的不是一个简单的问题。并且多个 apps 会导致每次 syncdb 都要考虑很多个
> > model 文件做一遍,挺麻烦。我更需要的是一种简易的拆分机制。
> >
> > 因此我现在基本上是通过物理文件的方式,把同类的 views 放到一个文件里。即 views_xxx.py, views_yyy.py
> > 的组织形式,反正 django 是通过 urls 来分派请求的,这一点挺方便。
> >
> > 有没有必要做成像 ASP.NET 那样一个文件一个 view 呢?好多选择还没想明白。先瞎写这么多吧。
> >
> > 请大家讨论,谢谢。
> >
> 这个可能看个人的管理方式。你的划分粒度很小,而app是以一个完整的功能还说的。在一个复杂一些的app,可以把view分成几个文件这是有的。不过细到一个view一个文件,会造成文件太多,也未必方便。
>
>
> --
> I like python!
> UliPad <>: http://wiki.woodpecker.org.cn/moin/UliPad
> 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

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

2007年03月26日 星期一 13:19

limodou limodou在gmail.com
星期一 三月 26 13:19:24 HKT 2007

On 3/26/07, Neil(木野狐) <chenrong2003在gmail.com> wrote:
> yi huang
> >> agree, 我比较倾向于把 views 做成包。
>
> limodou
> "不过细到一个view一个文件,会造成文件太多,也未必方便。"
> >> 文件多会对性能造成影响吗?比如有很多 views 文件需要导入。而写在一个文件中是否在多次请求之间,有一定的缓存机制,能节省 import 的时间?
>
对于性能倒不一定有影响,只是管理起来也未必方便。特别是有些相同的修改文件多了改起来也麻烦。

-- 
I like python!
UliPad <>: http://wiki.woodpecker.org.cn/moin/UliPad
My Blog: http://www.donews.net/limodou

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

2007年03月26日 星期一 17:47

vicalloy zbirder在gmail.com
星期一 三月 26 17:47:26 HKT 2007

我觉得看自己的习惯了。
我是将同一模块的功能放到同一个view里面,等自己觉得这个view太大了。
再将这个view细分成多个view。
在 07-3-26,limodou<limodou在gmail.com> 写道:
> On 3/26/07, Neil(木野狐) <chenrong2003在gmail.com> wrote:
> > yi huang
> > >> agree, 我比较倾向于把 views 做成包。
> >
> > limodou
> > "不过细到一个view一个文件,会造成文件太多,也未必方便。"
> > >> 文件多会对性能造成影响吗?比如有很多 views 文件需要导入。而写在一个文件中是否在多次请求之间,有一定的缓存机制,能节省 import 的时间?
> >
> 对于性能倒不一定有影响,只是管理起来也未必方便。特别是有些相同的修改文件多了改起来也麻烦。
>
> --
> I like python!
> UliPad <>: http://wiki.woodpecker.org.cn/moin/UliPad
> 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

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

2007年03月26日 星期一 21:11

HackGou hackgou在163.com
星期一 三月 26 21:11:40 HKT 2007

一个HTML附件被移除...
URL: http://python.cn/pipermail/python-chinese/attachments/20070326/92b9f730/attachment.htm 

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

2007年03月27日 星期二 15:14

Neil(木野狐) chenrong2003在gmail.com
星期二 三月 27 15:14:58 HKT 2007

views 中的代码量提炼到其他业务逻辑模块中去,我觉得这是一个重构的过程;很少能够一步做到的。

在 07-3-26,HackGou<hackgou在163.com> 写道:
> 我觉得根据个人爱好,
> 不过就我而言,我宁愿把业务逻辑封在modeles里面,在view里面只需要很少的一些显示方面的代码,而且这些代码也可以在
> template中配合tag和filter搞定,所以我的views一般不会很长,
>

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

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

    你的回复:

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

    Zeuux © 2025

    京ICP备05028076号