我正在使用 Python Flask 和 flask-restplus 构建一个 RESTful API。
这是一个缩放的 flask-restplus 应用程序,我按照这里给出的页面(缩放你的项目)来设计我的应用程序。
我想在对象实例化期间将参数传递给 Ratings 类。Ratings 类使用由 flask-restplus 提供的命名空间装饰器进行装饰。
我无法理解 Ratings 对象在何处被实例化,以便我可以将参数传递给该对象。我必须传递的参数是来自我的 app.py 文件的 Ratings 类的文件名 (settings.json)。
任何帮助都感激不尽。
我的目录结构如下:
|_>apis
| |_> __init__.py
| |_> ratings.py
|_>app.py
三个python文件是这样的:
#__init__.py
from flask_restplus import Api
from .ratings import api as ns1
api = Api(version='1.0', title='Reviews Service',
description='Hello Reviews',)
api.add_namespace(ns1)
# app.py
from flask import Flask
from apis import api
app = Flask(__name__)
api.init_app(app)
app.config.from_json('settings.json')
if __name__ == '__main__':
logging.basicConfig(filename=app.config['LOGGING_FILE_LOCATION'], level=logging.INFO)
app.run()
# ratings.py
from db_interface import DBInterface
from flask_restplus import Resource, Namespace
api = Namespace('AppReviewRatings', description='"Ratings" related operations.',)
@api.route('/api/<version>/<metric_name>/<app_store_name>')
@api.doc(params={'version': '"1" (v1) or "2" (v2)',
'metric_name': '"rating" or "reviews"',
'app_store_name': '"apple" or "google"'})
class Ratings(Resource):
@api.response(200, 'Success')
@api.response(400, 'Validation Error')
def get(self, version, metric_name, app_store_name):
# I must receive settings.json as an argument from app.py file.
db_interface = DBInterface(settings_file_path='settings.json')
parameters = {'app_store_name': app_store_name, 'hue_version': hue_version}
result = db_interface.query(q_type=metric_name, params=parameters)
return result