0
我正在使用Flask-Restful來處理Restful API,其資源比我想要保留在我的app.py中更多。所以我應用了建議的project structure。現在我想從資源訪問api.url_for()來生成一些鏈接,但似乎我不得不from app import api
來做到這一點。如何訪問大Flask-Restful API中的api.url_for
爲了避免循環導入,我目前的解決方案是做一個懶導入。但是有更好的方法,對吧?
app.py
:
from flask import Flask
from flask_restful import Api
from myapi.resources.foo import Foo
from myapi.resources.bar import Bar
from myapi.resources.baz import Baz
app = Flask(__name__)
api = Api(app)
api.add_resource(Foo, '/Foo', '/Foo/<str:id>')
api.add_resource(Bar, '/Bar', '/Bar/<str:id>')
api.add_resource(Baz, '/Baz', '/Baz/<str:id>')
resource/foo.py
(bar.py
分別):
from flask_restful import Resource
from bar import Bar
class Foo(Resource):
def get(self):
from app import api
related = api.url_for(Bar, foo=self.id)
return {'Foo':self.id, 'related_bar':related}, 200
def post(self):
pass