0

我正在使用 Falcon 框架。我希望所有独立类都存储在它们自己的目录中(为 /module1/ 服务的类在目录 /module1/ 中):

/app
   ./app.py
    /modules
        /__init__.py
        /module1
            ...
        /module2
            ...
        ....

在 app.py 我有应用程序的初始化:

import falcon
# falcon.API instances are callable WSGI apps
app=falcon.API()

我的问题:

  1. 我必须如何组织模块的导入,我可以从模块 2 访问模块 1?
  2. 如何从 /module2 访问 app.py 的 app 变量:

我需要做这个代码:

module2_mngr = Module2(CONFIG_FILE)
app.add_route('/module2', module2_mngr)

PS:对不起我的英语

4

1 回答 1

0

我可以根据 api.debug.DEBUG 标志使用不同配置的简单示例:

创建一些基本路径:/somepath/my_app/

创建文件夹结构:

/somepath/my_app/api

/somepath/my_app/api/debug

/somepath/my_app/conf

/somepath/my_app/conf/prod

/somepath/my_app/conf/dev

创建空文件:

/somepath/my_app/__init__.py 
/somepath/my_app/api/__init__.py
/somepath/my_app/conf/prod/__init__.py
/somepath/my_app/conf/dev/__init__.py

示例 main.py (/somepath/my_app/ main.py ):

import api.debug
api.debug.DEBUG = False
import conf

设置 api.debug.DEBUG == False

/somepath/my_app/api/debug/__init__.py:

DEBUG = False

创建简单的“路由器”:

  • 如果 api.debug.DEBUG 为 True - 加载生产配置。
  • 如果 api.debug.DEBUG 为 False - 加载开发配置。

所以我们创建

/somepath/my_app/conf/__init__.py:

import api.debug
if not api.debug.DEBUG:
    from conf.prod import *
else:
    from conf.dev import *
于 2015-09-09T05:13:49.713 回答