【发布时间】:2010-01-15 12:03:00
【问题描述】:
我目前正在学习 Python,并且拥有强大的 C# 背景。我一直听说以 Python 式的方式做事,以利用语言的动态特性,其中一些我得到,一些我没有。
我正在使用 Django 创建一个站点,而我的视图方法是使用类。我目前的想法是有一个基类,其中包含有关要使用的模板和模型的一些内容。这将有一个默认的时髦 404 类型页面,其中包含站点搜索和其他内容,然后所有其他页面都以此为基础。因此,站点的每个区域都有自己的 EG 新闻,所有与模型相关的功能和过滤都将在该类中,在该类之上还有一个用于 HTML 或 AJAX 请求的类。所以你会有这样的东西:
\site\common\ViewBase
--\news\NewsBase(ViewBase)
--\news\HtmlView(NewsBase)
--\news\AJAXView(NewsBase)
URL 将像 http://tld/news/latest 映射到 site.news.htmlview 一样映射,http://tld/news//to/ 也将映射到 site.news.htmlview 但该类将弄清楚如何处理额外的参数。
这几乎是我在 C# 中会做的事情,但 Django 教程只展示了使用视图方法,这让我想知道这是否不是一个非常 Pythonic 的解决方案?
想法?
编辑:在 S.Lott 关于线程安全的评论之后,最好让函数保持原样并让它们创建一个类的实例并在其上调用一个方法?
我正在寻找的是一个放置网站每个部分的通用代码的地方,用于过滤模型、网站身份验证等
【问题讨论】:
-
适用于模型表的代码应放入 managers docs.djangoproject.com/en/1.1/topics/db/managers
-
我不明白为什么它不是 Pythonic... 我认为问题是它是否是 Djangoic。