Flask-Restless:manager.create_api() 不返回蓝图对象
Posted
技术标签:
【中文标题】Flask-Restless:manager.create_api() 不返回蓝图对象【英文标题】:Flask-Restless: manager.create_api() does not return blueprint object 【发布时间】:2015-04-18 14:42:34 【问题描述】:我正在为我的简单 REST 服务使用 Flask-Restless 扩展。现在我想启用 CORS。
根据这篇文章http://flask-restless.readthedocs.org/en/latest/customizing.html我尝试使用以下代码来启用CORS:
import flask
import flask.ext.sqlalchemy
import flask.ext.restless
from flask import Flask
app = Flask(__name__)
app.config['DEBUG'] = True
app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql://root:password@localhost/db'
db = flask.ext.sqlalchemy.SQLAlchemy(app)
class Cost(db.Model):
__tablename__ = 'costs'
id = db.Column(db.Integer, primary_key = True)
name = db.Column(db.Unicode, unique = True)
amount = db.Column(db.Float)
date = db.Column(db.DateTime)
def add_cors_headers(response):
response.headers['Access-Control-Allow-Origin'] = '*'
response.headers['Access-Control-Allow-Credentials'] = 'true'
return response
db.create_all()
manager = flask.ext.restless.APIManager(app, flask_sqlalchemy_db = db)
blueprint = manager.create_api(Cost)
blueprint.after_request(add_cors_headers)
app.run()
但是blueprint
对象没有after_request
属性。
我做错了什么?
【问题讨论】:
经过一番研究,我找到了Flask-CORS extension。这样,问题就解决了。 【参考方案1】:您能否提供有关如何正确使用 CORS 模块的任何信息。遵循文档上的说明并没有解决我的任何问题。
【讨论】:
我导入 CORS 模块from flask.ext.cors import CORS
,接下来我调用 cors = CORS(app, resources=r"/api/*": "origins": "*")
并将 CORS 标头添加到配置 app.config['CORS_HEADERS'] = 'Content-Type'
以上是关于Flask-Restless:manager.create_api() 不返回蓝图对象的主要内容,如果未能解决你的问题,请参考以下文章