如何查询 API setup with Flask-restless
How to query API set up with Flask-restless
我正在尝试学习如何在 Flask 应用程序和 mysql 数据库中提供数据,这两者都在 pythonanywhere 上提供。
我添加了一条到 /test 的路由,其功能旨在连接到现有的 mysql 数据库 table,然后将其作为 API 使用flask-restless 的 create_api.
from flask.ext.sqlalchemy import SQLAlchemy
from sqlalchemy import create_engine
from sqlalchemy.orm import scoped_session, sessionmaker
from sqlalchemy.ext.declarative import declarative_base
from flask.ext.cors import CORS
app.config["SQLALCHEMY_DATABASE_URI"] = SomeLoginDetails
app.config["SQLALCHEMY_POOL_RECYCLE"] = 299
db = SQLAlchemy(app)
@app.route("/test")
def create_api():
app.config['CORS_ALLOW_HEADERS'] = "Content-Type"
app.config['CORS_RESOURCES'] = {r"/api/*": {"origins": "*"}}
cors = CORS()
engine = create_engine(SomeLoginDetails)
Base = declarative_base()
Base.metadata.bind = engine
class Prices(Base):
__tablename__ = 'table'
col1 = Column(Integer, primary_key=True)
col2 = Column(Float)
col3 = Column(Float)
col4 = Column(Float)
Base.metadata.create_all()
manager = flask.ext.restless.APIManager(app,
flask_sqlalchemy_db = db)
manager.create_api(Prices, methods=['GET'], max_results_per_page =1000)
return "OK"
如果我省略最后一个 Return "OK",我会收到如下错误:
File "/home/username/.local/lib/python2.7/site-packages/flask/app.py", line 1566, in make_response
raise ValueError('View function did not return a response')
ValueError: View function did not return a response
但是,如果我添加它,我不会收到任何错误。
这是为什么?
终点在哪里?我试过
http://xxx-sitename-xxx.pythonanywhere.com/test/api
但我收到“未找到”页面错误。
第一个问题:
原因很明确,你的视图函数应该return一个响应,它可以是str、unicode、WSGI对象或元组。
第二个问题:
想知道flask中的endpoint是什么,可以看这个问题:What is an 'endpoint' in Flask?。你得到 NotFound
错误的原因是你没有定义 /test/api
路由,你只有 /test
路由。
此外,设置您的应用程序和数据库模型并在API内部创建一个视图似乎真的很奇怪。
我正在尝试学习如何在 Flask 应用程序和 mysql 数据库中提供数据,这两者都在 pythonanywhere 上提供。
我添加了一条到 /test 的路由,其功能旨在连接到现有的 mysql 数据库 table,然后将其作为 API 使用flask-restless 的 create_api.
from flask.ext.sqlalchemy import SQLAlchemy
from sqlalchemy import create_engine
from sqlalchemy.orm import scoped_session, sessionmaker
from sqlalchemy.ext.declarative import declarative_base
from flask.ext.cors import CORS
app.config["SQLALCHEMY_DATABASE_URI"] = SomeLoginDetails
app.config["SQLALCHEMY_POOL_RECYCLE"] = 299
db = SQLAlchemy(app)
@app.route("/test")
def create_api():
app.config['CORS_ALLOW_HEADERS'] = "Content-Type"
app.config['CORS_RESOURCES'] = {r"/api/*": {"origins": "*"}}
cors = CORS()
engine = create_engine(SomeLoginDetails)
Base = declarative_base()
Base.metadata.bind = engine
class Prices(Base):
__tablename__ = 'table'
col1 = Column(Integer, primary_key=True)
col2 = Column(Float)
col3 = Column(Float)
col4 = Column(Float)
Base.metadata.create_all()
manager = flask.ext.restless.APIManager(app,
flask_sqlalchemy_db = db)
manager.create_api(Prices, methods=['GET'], max_results_per_page =1000)
return "OK"
如果我省略最后一个 Return "OK",我会收到如下错误:
File "/home/username/.local/lib/python2.7/site-packages/flask/app.py", line 1566, in make_response
raise ValueError('View function did not return a response')
ValueError: View function did not return a response
但是,如果我添加它,我不会收到任何错误。
这是为什么?
终点在哪里?我试过
http://xxx-sitename-xxx.pythonanywhere.com/test/api
但我收到“未找到”页面错误。
第一个问题:
原因很明确,你的视图函数应该return一个响应,它可以是str、unicode、WSGI对象或元组。
第二个问题:
想知道flask中的endpoint是什么,可以看这个问题:What is an 'endpoint' in Flask?。你得到 NotFound
错误的原因是你没有定义 /test/api
路由,你只有 /test
路由。
此外,设置您的应用程序和数据库模型并在API内部创建一个视图似乎真的很奇怪。