我有一些GAE应用程序,我想分成三个模块:default
(www
),mobile
和api
但是我在理解模块和如何组织代码方面有一些困难。在
根据找到的图片here这就是应用程序应该是什么样子的。
这是我目前提出的简化结构:
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文件并通过ajax使用api
模块的api
模块,但目前大多数模板是通过jinja2在服务器端生成的,这引起了一些问题。
问题:
由于api
和default
(www
)模块目前都在服务器端与数据存储一起工作,那么我该把我的数据存储模型保存在这个映像/结构中的什么位置?除此之外,他们都共用一些图书馆,我该把它们放在哪里?我是否要在app的根文件夹中创建一个新的“lib”文件夹,并将其存储在那里,然后将其符号链接到每个模块?我在寻找一些最佳实践。
用单独的git回购来实现这一切的最佳方式是什么?我希望我的每个模块都有自己的存储库。从第一季度开始,共享模型/库如何工作?带有模块的GAE应用程序似乎只允许一个dispath.yaml
/cron.yaml
/index.yaml
/queue.yaml
/etc(不是每个模块),那么哪个repo将拥有这些文件?
我知道这些问题没有一个正确的答案,但我在寻找最佳实践。请注意,我今天早些时候才开始使用模块,所以我对它们如何工作的理解可能完全错误。在
关于第一个问题:是的,您可以创建一个/lib文件夹,将其放在文件夹结构的根目录下,然后从那里引用所有常用代码。www和api模块都应该能够访问(共享)此代码。在
第二个问题由@Lipis回答:请查看此链接:How do I work with a git repository within another repository?
相关问题 更多 >
编程相关推荐