【问题标题】:flask - nested resources烧瓶 - 嵌套资源
【发布时间】:2017-01-31 22:44:39
【问题描述】:

我正在用 python 中的烧瓶编写一个安静的服务器,并且我正在寻找一种在分隔文件中创建嵌套资源的方法。例如,如果我有名为 Foo 的资源和名为 Bar 的子资源,而不是这样写:

demo_app.py:

from flask import Flask
from flask_restplus import Api, Resource

app = Flask(__name__)
api = Api(app)
name_space = api.namespace('foo')


@name_space.route('/')
class Foo(Resource):
    def get(self):
        return 'foo'


@name_space.route('/bar')
class Bar(Resource):
    def get(self):
        return 'bar'


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

我想把 Foo 和 Bar 写在不同的文件里:

demo_app.py:

from flask import Flask
from flask_restplus import Api, Resource

app = Flask(__name__)
api = Api(app)
name_space = api.namespace('foo') 

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

foo.py:

from flask_restful import Resource
from Receiver.demo_app import name_space
@name_space.route('/')
class Foo(Resource):
    def get(self):
        return 'foo'

bar.py:

from flask_restful import Resource
from Receiver.demo_app import name_space 
@name_space.route('/bar')
class Bar(Resource):
    def get(self):
        return 'bar'

但是当我这样写时,我得到:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<title>404 Not Found</title>
<h1>Not Found</h1>
<p>The requested URL was not found on the server.  If you entered the URL manually please check your spelling and try again.</p>

如何在这些类之间建立联系? 有没有其他写嵌套资源的方法?

【问题讨论】:

    标签: python rest flask flask-restful


    【解决方案1】:

    foo.py 和 bar.py 不会生效,除非它们被导入到您的其余代码中。您需要添加到demo_app.py:

    from . import foo, bar
    

    这种循环导入的使用与拆分对app 的引用的推荐方法相同;参看。 http://flask.pocoo.org/docs/0.12/patterns/packages/.

    【讨论】:

      猜你喜欢
      • 2014-10-25
      • 1970-01-01
      • 1970-01-01
      • 2013-11-02
      • 2023-04-05
      • 1970-01-01
      • 1970-01-01
      • 2014-02-24
      • 2011-01-03
      相关资源
      最近更新 更多