Python和App Engine项目结构

6 投票
2 回答
1373 浏览
提问于 2025-04-15 21:02

我刚开始学习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的,但这没关系)。

撰写回答