python flask restful无法在资源类中获取应用程序访问权限

python flask restful无法在资源类中获取应用程序访问权限,python,flask,flask-restful,Python,Flask,Flask Restful,下面是来自的示例代码 HelloWorld类位于同一个python文件中,比如说app.py,它可以工作 现在,我将把HelloWorld类放在一个单独的类文件中,如下所示: app app/__init__.py # hold above code except the HelloWorld class. app/resource app/resource/__init__.py # empty app/resource/HelloWorld.py # hold the above Hello

下面是来自的示例代码

HelloWorld
类位于同一个python文件中,比如说
app.py
,它可以工作

现在,我将把
HelloWorld
类放在一个单独的类文件中,如下所示:

app
app/__init__.py # hold above code except the HelloWorld class.
app/resource
app/resource/__init__.py # empty
app/resource/HelloWorld.py # hold the above HelloWorld class.
app/\uuuuu init\uuuuuu.py
包含:

from flask import Flask
from flask.ext import restful
from resource.HelloWorld import HelloWorld

app = Flask(__name__)
api = restful.Api(app)

api.add_resource(HelloWorld, '/')

if __name__ == '__main__':
    app.run(debug=True)
HelloWorld.py
是:

from flask.ext import restful
from app import app

class HelloWorld(restful.Resource):
    def get(self):
        return {'hello': 'world'}
运行应用程序将出现异常:

ImportError: No module named app on HelloWorld.py

我确实需要访问应用程序来阅读一些信息,如
app.config
,如何使其工作?

您有一个循环导入;执行resource.HelloWorld import HelloWorld中的
行时,
app
尚未分配给,因此在
HelloWorld.py
中,app import app
中的
行失败

导入
HelloWorld
以后:

from flask import Flask
from flask.ext import restful

app = Flask(__name__)
api = restful.Api(app)

from resource.HelloWorld import HelloWorld
api.add_resource(HelloWorld, '/')

if __name__ == '__main__':
    app.run(debug=True)
或者只导入
HelloWorld.py
中的
app
模块:

from flask.ext import restful
import app

class HelloWorld(restful.Resource):
    def get(self):
        return {'hello': 'world'}
并参考以后调用的函数或方法中的
app.app

from flask.ext import restful
import app

class HelloWorld(restful.Resource):
    def get(self):
        return {'hello': 'world'}