-1
我已經在燒瓶中編寫了CRUD API,但每當我嘗試發出GET請求時,都會收到此錯誤,指出「內部服務器錯誤」。 POST請求也不適合我。 POST返回一個400錯誤,表示這是一個錯誤的請求。我在這裏做錯了什麼?燒瓶中的HTTP/1.0 500內部服務器錯誤
以下是我run.py文件
from flask import Flask, jsonify, abort, request
from flask_restless import APIManager
from flask_sqlalchemy import SQLAlchemy
from flask import make_response
app = Flask(__name__)
app.config.from_pyfile('config.py')
db = SQLAlchemy(app)
class User(db.Model):
username = db.Column(db.String(50), primary_key=True)
password = db.Column(db.String(50))
name = db.Column(db.String(20))
def __init__(self, name, uname, pword):
self.username = uname
self.name = name
self.password = pword
@app.route('/api/users/', methods = ['GET'])
def index():
return jsonify({'users': User.query.all()})
@app.route('/api/<string:username>/')
def get_user(username):
return jsonify({'users': User.query.get(username)})
@app.errorhandler(404)
def not_found(error):
return make_response(jsonify({'error': 'Not found'}), 404)
@app.route('/api/users/', methods = ['POST'])
def create_user():
if not request.json or not 'name' in request.json:
abort(400)
user = User(request.json.username, request.json.get('name', ''), request.json.get('password',''))
db.session.add(user)
db.session.commit()
return jsonify({ 'User': user }), 201
@app.route('/api/users/<string:username>', methods = ['DELETE'])
def delete_user(username):
db.session.delete(Users.query.get(username))
db.session.commit()
return jsonify({ 'result': True })
@app.route('/api/users/<string:username>', methods = ['PUT'])
def update_user(username):
user = User.query.get(username)
user.username = request.json.get('username', ser.username)
user.name = request.json.get('name',user.name)
user.focus = request.json.get('password', user.password)
db.session.commit()
return jsonify({ 'user': user })
if __name__ == '__main__':
app.run()
以下是我config.py文件
import os
basedir = os.path.abspath(os.path.dirname(__file__))
SQLALCHEMY_DATABASE_URI = 'sqlite:///' + os.path.join(basedir, 'app.sqlite')
SQLALCHEMY_MIGRATE_REPO = os.path.join(basedir, 'db_repository')
我在做什麼錯在這裏?任何幫助將不勝感激。
如果您運行的500錯誤頁面上使用'調試= TRUE',你會看到一個完整的回溯,有一個互動的基於網絡的調試器,應用程序。 – jwg
@jwg我檢查了控制檯,它顯示「沒有這樣的表:用戶[SQL:u'SELECT user.username AS user_username,user.password AS user_password,user.name AS user_name \ nFROM user']」 –
將呼叫添加到['db.create_all()'](http://flask-sqlalchemy.pocoo.org/2.1/quickstart/#a-minimal-application)放在合適的地方。 –