python - 如何组织GAE Modules app结构和代码?

标签 python git google-app-engine module google-cloud-datastore

我有一些 GAE 应用程序,我想将它们分为三个模块:default(www) 、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,与 api 通过 ajax 的模块。

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


问题:

  1. 因为 apidefault(www) 模块目前在服务器端与 Datastore 一起工作,我应该将我的 Datastore 模型保存在此图像/结构中的什么位置?除了它们都共享一些库之外,我应该把它们放在哪里?我是否在应用程序的根文件夹中创建一个新的“lib”文件夹并将公共(public)/共享文件存储在那里,然后将其符号链接(symbolic link)到每个模块?我正在寻找一些最佳实践。

  2. 使用单独的 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?

关于python - 如何组织GAE Modules app结构和代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26389301/

相关文章:

python - 根据属性对对象进行排序

git - 推送失败 - 使用 GitKraken 在远程服务器上清空存储库

python - 如何在 GAE 中使用烧杯

java - 如何在创建时将域添加到 Google Cloud Storage 对象 ACL?

python - Conda Build - 创建 Conda 包在平台 win-64 的依赖项上失败

python - Python 中的对角线网格遍历

python - 带有自定义聚合函数的 pandas groupby() 并将结果放在新列中

git - Docker:使用git push而不是ADD进行构建。/myapp

git - 为什么 git amend 在没有什么要修改的时候不警告你?

python - GAE 可以限制我的 websocket 连接吗?