我刚开始使用 Google App Engine,一直在寻找良好的实践和代码组织方式。我的大部分问题来自于对 __init__.py
的困惑。
我当前的测试结构如下:
/website
main.py
/pages
__init__.py #1
blog.py
hello2.py
hello.py
/sub
__init__.py #2
base.py
我希望使用 main.py 作为一个文件,简单地指向 /pages 和 /pages/sub 中的所有内容。/pages 中的大多数模块都共享几乎相同的导入(例如:import urllib)。有没有办法定义 /pages 中的所有内容都导入我想要的东西,而不是在每个单独的模块中添加它呢?
目前在 __init__.py #1 中,我有:
from sub.base import *
我的模块blog.py提示base.py中的BaseHandler函数未定义。 我的最终目标是得到类似于...的东西。
main.py
from pages import *
#be able to call any function in /pages without having to do blog.func1() or hello.func2()
#rather just func1() and func2()
我希望你能够在/pages
目录下的__init__.py
文件中共享模块的公共导入,以便它们可以共享来自base.py的urllib和所有函数。感谢您抽出时间来阅读这篇文章,期待您的见解。
__init__
中的项目不会自动在同一包中的模块中可用。您仍然需要在需要的地方显式导入BaseHandler
,例如在 blog.py 中。 - Martijn Pieters