我正在使用Flask-Restless,Flask-SQLAlchemy和SQLite3构建Webservices API。我有一个名为Place的课程,它也是一个包含我所在城市不同地方的表格。根据我的理解,我应该能够在端点发布新数据,如下所示:
http://localhost:5000/webservices/api/place
当我在浏览器中导航到该URL时,我也应该能够看到该表中所有内容的json响应。这只在部分时间有效...有时我能看到json响应,有时我得到404 url not found错误。我不断刷新页面,最终json响应回来了。我仍然无法发布api端点而没有获得404(偶尔会有500个?)....我做错了什么?
我发布的内容如下:
>>> import json
>>> import requests .
>>> newplace = {'name': u'Carls Jr.', 'address': '123 Main Street'}
>>> r = requests.post('http://localhost:5000/webservices/api/place', data=json.dumps(newplace),
... headers={'content-type': 'application/json'})
>>> r.status_code, r.headers['content-type']
(404, 'text/html')
这是我的代码:
import flask
import flask.ext.sqlalchemy
import flask.ext.restless
# Create the Flask application and the Flask-SQLAlchemy object.
app = flask.Flask(__name__)
app.config['DEBUG'] = True
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:////tmp/test.db'
db = flask.ext.sqlalchemy.SQLAlchemy(app)
#place
class Place(db.Model):
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.Unicode, unique=True)
address = db.Column(db.Unicode)
# Create the database tables.
db.create_all()
# Create the Flask-Restless API manager.
manager = flask.ext.restless.APIManager(app, flask_sqlalchemy_db=db)
manager.create_api(Place, methods=['GET', 'POST', 'DELETE'])
# start the flask loop
if __name__ == '__main__':
app.run()