Ich bekomme immer einen Fehler auf der URL, wenn ich versuche, POST in meiner API zu implementieren. Ich bekomme immer wieder den Fehler in der URL, der besagt, dass METHOD für diese URL nicht zulässig ist. Fehle ich etwas? Funktioniert POST nicht direkt, wenn Sie versuchen, den Server zu öffnen? Ich bin soooo verloren.Flasche mit POST, PUT, DELETE
from flask import Flask, jsonify,json, request, abort
from flask_sqlalchemy import SQLAlchemy
app = Flask(__name__)
app.config.from_pyfile('Config.py')
db = SQLAlchemy(app)
db.create_all()
class JsonModel(object):
def as_dict(self):
return {c.name: getattr(self, c.name) for c in self.__table__.columns}
class User(db.Model, JsonModel):
User_ID = db.Column(db.Integer, primary_key = True)
FirstName = db.Column(db.String(20))
LastName = db.Column(db.String(20))
def __init__(self,FirstName, LastName):
self.FirstName = FirstName
self.LastName = LastName
class Todo(db.Model, JsonModel):
todo_ID = db.Column(db.Integer, primary_key = True)
UserID = db.Column(db.Integer, db.ForeignKey('User_ID'))
details = db.Column(db.String(30))
def __init__(self,details):
self.details = details
@app.route('/', methods = ['GET'])
def index():
return json.dumps([u.as_dict() for u in User.query.all()+Todo.query.all()])
@app.route('/todo/<int:UserID>', methods = ['GET'])
def get(UserID):
return (list[Todo.query.get(UserID)])
@app.route('/p/', methods = ['POST'])
def create_dev():
if not request.json or not 'name' in request.json:
abort(400)
dev = Todo(request.json.details,request.json.get('details',''))
db.session.add(dev)
db.session.commit()
return json.dumps([{'dev': dev}]), 201
if __name__ == '__main__':
app.run()
Auf welcher URL erhalten Sie diesen Fehler? – Fejs
Es ist das/p/one, das mit POST zu tun hat –
Sagt es, welche Methode nicht erlaubt ist? Meine Vermutung ist, dass Sie versuchen, Seite zu laden, indem Sie http: //some.address/p besuchen und app beschweren sich, weil Sie GET-Methode hier nicht behandelt haben. – Fejs