每当我向http://0.0.0.0:8000/api/v1/fliers发帖请求时,它都会忽略它。我得到200 OK状态,数据库保持不变。我的get请求返回到它应该的状态,但是post请求被忽略。
奇怪的是,一切都很好,但现在还没有。我完全糊涂了。任何帮助,将不胜感激。
from flask import jsonify, Blueprint, abort
from flask.ext.restful import (Resource, Api, reqparse,
inputs, fields, marshal,
marshal_with, url_for)
from auth import auth
import models
flier_fields = {
'name': fields.String
}
def flier_or_404(flier_id):
try:
flier = models.Flier.get(models.Flier.id==flier_id)
except models.Flier.DoesNotExist:
abort(404)
else:
return flier
class FlierList(Resource):
def __init__(self):
self.reqparse = reqparse.RequestParser()
self.reqparse.add_argument(
'name',
required=True,
help='No name provided',
location=['form', 'json']
)
super(FlierList, self).__init__()
def get(self):
fliers = [marshal(flier, flier_fields) for flier in models.Flier.select()]
return {'fliers': fliers}
@marshal_with(flier_fields)
@auth.login_required
def post(self):
args = self.reqparse.parse_args()
flier = models.Flier.create(**args)
return (flier, 201)
class Flier(Resource):
def __init__(self):
self.reqparse = reqparse.RequestParser()
self.reqparse.add_argument(
'name',
required=True,
help='No name provided',
location=['form', 'json']
)
super(Flier, self).__init__()
@marshal_with(flier_fields)
def get(self, id):
return flier_or_404(id)
def put(self, id):
return 400
@auth.login_required
def delete(self, id):
query = models.Flier.delete().where(models.Flier.id==id)
query.execute()
return ('', 204)
fliers_api = Blueprint('resources.fliers', __name__)
api = Api(fliers_api)
api.add_resource(
FlierList,
'/api/v1/fliers',
endpoint='fliers'
)
api.add_resource(
Flier,
'/api/v1/fliers/<int:id>',
endpoint='flier'
)