[英]How to organize GAE Modules app structure and code?
我有一些GAE应用程序,我想分成三个模块: default
( www
), mobile
和api
但我在理解模块和如何组织代码时遇到一些困难。
这是我到目前为止提出的简化结构:
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
模块一起正常工作。
default
( www
)模块有一天会变得像只包含html + js文件的mobile
模块,并通过ajax使用api
模块,但是现在大多数模板都是通过jinja2生成服务器端的,这引起了一些问题。
问题:
由于api
和default
( www
)模块现在都在使用数据存储区的服务器端,我在哪里将数据存储模型保留在此映像/结构中? 除此之外,他们都共享一些图书馆,我在哪里保留它们? 我是否在应用程序的根文件夹中创建一个新的“ lib ”文件夹并将公共/共享文件存储在那里,然后将其符号链接到每个模块? 我正在寻找一些最佳实践。
使用单独的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.