Python和App Engine项目结构
我刚开始学习Python和应用引擎,刚完成了我的第一个项目。这个项目由几个*.py文件组成(通常每个网页都有一个py文件),每个py文件对应一个模板文件。此外,我还有一个大的PY文件,里面有很多在多个页面中都用到的函数,我还在里面定义了db.Model的类(也就是数据存储的种类)。
我想问的是,关于这些文件的排列,有没有什么约定(如果有的话)。如果我创建一个model.py来放数据存储的类,它应该放在不同的包里吗?我的模板文件和处理每个页面的所有py文件应该放在哪里(它们应该和那个大的公共PY文件放在同一个目录里吗)?
我试着在网上找MVC这样的实现,但几乎没有找到。
谢谢,
乔尔
2 个回答
3
通常我会这样组织我的代码:
project/
main.py
models.py
app.yaml
index.yaml
templates/
main.html
foo.html
...
styles/
project.css
js/
jquery.js
project.js
images/
icon.png
something.jpg
我把所有的处理程序放在main.py里,所有的模型放在models.py里,等等。
如果我的处理程序很多,而且我能很容易地把一些处理程序的功能和其他的分开(比如任务队列处理程序和请求处理程序,或者xmpp/email处理程序),我会再加一个foo_handlers.py
来放这些处理程序,但通常我只是把它们全都塞进main.py
里。
不过,我一般不太会写特别复杂的Python App Engine应用……
3
我通常会这样组织我的项目:
project
main.py
README
models
bar.py
foo.py
views
foolist.hml
barlist.hml
controllers
controller1.py
controller2.py
api
controllerapi.py
helpers
utilities.py
lib
extfoo.py
db
foo.db
test
test.py
你可以看看这个 文章;它是关于如何构建项目结构的,非常不错(虽然不是讲Python的,但这没关系)。