Project structure for Google App Engine我在Google App Engine中启动了一个应用程序,当它出现时,玩这个技术并开展一个我一直在考虑的宠物项目,但是从来没有开始。结果是href ="http://www.bowlsk.com"rel ="noreferrer"> BowlSK / a>。然而,随着它的发展和功能的增加,它变得非常难以保持组织 - 主要是因为这是我的第一个python项目,在我开始工作之前我对此一无所知。 / p>
p>我有什么:/ p> UL> UL> UL> P>实施例:BR /> 这是令人讨厌的。我该如何重组?我有两个想法:/ p> UL> UL> UL> p>有最好的做法吗?随着Django 1.0即将到来,当它成为官方的GAE模板引擎时,我现在能做些什么来提高我与它集成的能力?我只是开始尝试这些东西,看看哪个看起来更好,但是pyDev的重构支持似乎并没有很好地处理包移动,所以将所有这些都重新工作可能是一件非常重要的任务./p> 首先,我建议您查看"a href ="http://sites.google.com/site/io/rapid-development-with-python-django-and-google-app-engine"rel ="noreferrer">使用Python,Django和Google App Engine快速开发/ a>"/ p> p> GvR描述了他的a href ="http://sites.google.com/site/io/rapid-development-with-python-django-and-google-app-engine的第10页上的一般/标准项目布局/rapid_development_with_django_gae.pdf?attredirects=0"rel ="noreferrer">幻灯片演示文稿/ a>。 / P> p>这里我将从该页面发布一个稍微修改过的布局/结构版本。我自己也非常关注这种模式。您还提到您在使用包时遇到问题。只需确保每个子文件夹都有一个__init__.py文件。没关系,如果它是空的./p> h2> Boilerplate文件/ h2> UL> h2>项目布局/ h2> UL> UL> p>以下是一些可能有用的代码示例:/ p> H2> main.py/h2> pre> code> import wsgiref.handlers 来自google.appengine.ext导入webapp application = webapp.WSGIApplication([ def main(): H2>的myapp / views.py / H2> pre> code> import os 来自google.appengine.api import urlfetch class IndexHandler(webapp.RequestHandler): class FooHandler(webapp.RequestHandler): H2>的myapp / models.py / H2> pre> code>来自google.appengine.ext import db class SampleModel(db.Model): 我认为这种布局适用于新的和相对中小型项目。对于较大的项目,我建议将视图和模型分解为拥有自己的子文件夹,例如:/ p> h2>项目布局/ h2> UL> UL> UL> p>我通常的布局看起来像这样:/ p> UL> UL> UL> UL> UL> p>我可以提供我的app.yaml,request.py,lib / strong> init / strong> .py和示例控制器的示例,如果不清楚的话./p> 我今天实施了一个谷歌应用引擎样板,并在github上进行了检查。这与上面的尼克·约翰逊(曾经为谷歌工作过)所描述的一致./ p> p>点击此链接a href ="https://github.com/droot/gae-boilerplate"> gae-boilerplate / a> / p> 我认为第一种选择被认为是最佳做法。并将代码文件夹作为您的第一个包。由Guido van Rossum开发的Rietveld项目是一个非常好的模型。看看它:a href ="http://code.google.com/p/rietveld"> http://code.google.com/p/rietveld/a> / p> p>关于Django 1.0,我建议你开始使用Django中继代码而不是内置django端口的GAE。再次,看看它是如何在Rietveld./p>中完成的 p>我喜欢href ="http://webpy.org/"> webpy / a>所以我在Google App Engine上采用它作为模板框架.br> 我的包文件夹通常如下组织:/ p> 预>代码>的app.yaml p> a href ="http://github.com/systempuntoout/stackprinter">这里/ a>是一个例子./p> 在谈到代码布局时,我并不完全了解最新的最佳实践,但是当我完成第一个GAE应用程序时,我使用了第二个选项,其中代码和模板紧挨着彼此./p> 这有两个原因 - 一个是它保持代码和模板附近,其次,我的目录结构布局模仿了网站 - 使它(对我来说)更容易记住一切都在哪里./ p> |