Mih*_*ssu 7 python git google-app-engine module google-cloud-datastore
我有一些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
Run Code Online (Sandbox Code Playgroud)
该api模块提供了大量的API函数,并且可以自行运行.
该mobile模块只是一堆html + js,api通过ajax 与模块配合得很好.
在default(www)模块将成为一天,就像mobile只包含HTML + JS文件,并与工作模块api通过AJAX模块,但是通过现在大部分的模板生成服务器端的Jinja2这是造成一些问题.
问题:
由于两个api和default(www)模块现在都在使用数据存储区的服务器端,我在哪里将数据存储模型保留在此映像/结构中?除此之外,他们都共享一些图书馆,我在哪里保留它们?我是否在应用程序的根文件夹中创建一个新的" lib "文件夹并将公共/共享文件存储在那里,然后将其符号链接到每个模块?我正在寻找一些最佳实践.
使用单独的git repos使所有这些工作的最佳方法是什么?我希望我的每个模块都有自己的存储库.如何使用Q1中的共享模型/库?带模块的GAE应用程序似乎每个应用程序只允许一个dispath.yaml/ cron.yaml/ index.yaml/ queue.yamletc(不是每个模块),哪个repo会有这些文件?
我意识到问题没有一个正确的答案,但我正在寻找最佳实践.请注意,我刚刚开始使用模块,所以我理解它们的工作原理可能完全错误.
关于第一个问题:是的,您可以创建一个 /lib 文件夹,将其放在文件夹结构的根目录下,并从那里引用所有公共代码。www 和 api 模块都应该能够访问(共享)此代码。
@Lipis 回答了第二个问题:查看此链接:How do I work with a git repositories inside another repository?