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

2024-04-25 22:46:40 发布

您现在位置:Python中文网/ 问答频道 /正文

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

根据找到的图片here这就是应用程序应该是什么样子的。 Google's Suggested GAE App structure

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

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文件并通过ajax使用api模块的api模块,但目前大多数模板是通过jinja2在服务器端生成的,这引起了一些问题。


问题:

  1. 由于apidefaultwww)模块目前都在服务器端与数据存储一起工作,那么我该把我的数据存储模型保存在这个映像/结构中的什么位置?除此之外,他们都共用一些图书馆,我该把它们放在哪里?我是否要在app的根文件夹中创建一个新的“lib”文件夹,并将其存储在那里,然后将其符号链接到每个模块?我在寻找一些最佳实践。

  2. 用单独的git回购来实现这一切的最佳方式是什么?我希望我的每个模块都有自己的存储库。从第一季度开始,共享模型/库如何工作?带有模块的GAE应用程序似乎只允许一个dispath.yaml/cron.yaml/index.yaml/queue.yaml/etc(不是每个模块),那么哪个repo将拥有这些文件?

我知道这些问题没有一个正确的答案,但我在寻找最佳实践。请注意,我今天早些时候才开始使用模块,所以我对它们如何工作的理解可能完全错误。在


Tags: 模块pysrcapiapp应用程序defaultyaml