繁体   English   中英

如何组织GAE模块的应用程序结构和代码?

[英]How to organize GAE Modules app structure and code?

我有一些GAE应用程序,我想分成三个模块: defaultwww ), mobileapi但我在理解模块和如何组织代码时遇到一些困难。

根据这里找到的图像这是一个应用程序应该是什么样子。 谷歌推荐的GAE App结构

这是我到目前为止提出的简化结构:

gae-app/
├── modules
│   ├── api
│   │   ├── app.yaml
│   │   └── src
│   │       └── main.py
│   ├── mobile
│   │   ├── app.yaml
│   │   └── src
│   │       └── index.html
│   └── www
│       ├── app.yaml
│       └── src
│           ├── main.py
│           └── templates
├── cron.yaml
├── index.yaml
└── queue.yaml


  • api模块提供了大量的API函数,并且可以自行运行。

  • mobile模块只是一堆html + js,通过ajax与api模块一起正常工作。

  • defaultwww )模块有一天会变得像只包含html + js文件的mobile模块,并通过ajax使用api模块,但是现在大多数模板都是通过jinja2生成服务器端的,这引起了一些问题。


问题:

  1. 由于apidefaultwww )模块现在都在使用数据存储区的服务器端,我在哪里将数据存储模型保留在此映像/结构中? 除此之外,他们都共享一些图书馆,我在哪里保留它们? 我是否在应用程序的根文件夹中创建一个新的“ lib ”文件夹并将公共/共享文件存储在那里,然后将其符号链接到每个模块? 我正在寻找一些最佳实践。

  2. 使用单独的git repos使所有这些工作的最佳方法是什么? 我希望我的每个模块都有自己的存储库。 如何使用Q1中的共享模型/库? GAE应用与模块似乎只允许一个dispath.yaml / cron.yaml / index.yaml / queue.yaml的/ etc每个应用程序(而不是每个模块),使该回购会对这些文件?

我意识到问题没有一个正确的答案,但我正在寻找最佳实践。 请注意,我刚刚开始使用模块,所以我理解它们的工作原理可能完全错误。

关于第一个问题:是的,您可以创建/ lib文件夹,将其放在文件夹结构的根目录中,并从那里引用所有常用代码。 www和api模块都应该能够访问(共享)此代码。

第二个问题由@Lipis回答:查看此链接: 如何在另一个存储库中使用git存储库?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM