当前位置: 首页 > 知识库问答 >
问题:

Postman 500内部服务器错误api中出错

章永安
2023-03-14

我正在为一个web使用flask构建一个api,我已经有了一个数据库,GET请求可以工作,但当我尝试发布时,它会给我这个错误

500内部服务器错误

这是我写的代码

#User_schema
class UserSchema(ma.Schema):
 class Mata:
  fields = ('id', 'name', 'Email', 'Pass', 'Phone', 'Department', 'Major')

#init_schema
user_schema = UserSchema()
users_schema = UserSchema(many=True)

#create user
@app.route('/user', methods=['POST'])
def add_User():
 #id = request.json['id']
 name = request.json['name']
 Email = request.json['Email']
 Pass = request.json['Pass']
 #Phone = request.json['Phone']
 Department = request.json['Department']
 Major = request.json['Major']

 new_user = User(name, Email, Pass, Department, Major)
 db.session.add(new_user)
 db.session.commit()

 return user_schema.jsonify(new_user)

这是我在邮递员上添加的请求

{
    "name": "User 1",
    "Email": "User1@.com",
    "Pass": "qq1",
    "Phone": "0551",
    "Department": "IT 1",
    "Major": "IT 1"
}

我还使用了一个本地服务器,我查看了其他链接,每个人都在询问日志,如果我没有错,我想我可以从

看法

这是日志的截图:(我想)

到底是什么问题我不明白

编辑:这是完整的代码:

from flask import Flask, request, jsonify
from flask_sqlalchemy import SQLAlchemy
from flask_marshmallow import Marshmallow
import os

app = Flask(__name__)
basedir = os.path.abspath(os.path.dirname(__file__))
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///db.db'
app.config['SQLALCHEMY_TRACK_MODIFICATION'] = False
db = SQLAlchemy(app)
ma = Marshmallow(app)

class User (db.Model):
 id = db.Column(db.Integer,primary_key=True)
 name = db.Column(db.String(30))
 Email = db.Column(db.String(30))
 Pass = db.Column(db.String(30))
 Phone = db.Column(db.Integer)
 Department = db.Column(db.String(30))
 Major = db.Column(db.String(30))
 meeting = db.relationship('Meeting', backref='creator')
 meetingroom = db.relationship('MeetingRoom', backref='reserver')

    def _init_(self, name, Email, Pass, Phone, Department, Major):
  self.name = name
  self.Email = Email
  self.Pass = Pass
  self.Phone = Phone
  self.Department = Department
  self.Major = Major

class MeetingRoom (db.Model):
 mrid = db.Column(db.Integer,primary_key=True)
 reserver_id = db.Column(db.Integer, db.ForeignKey('user.id'))
 #meetingm = db.relationship('Meeting', backref='roomno')
 mid = db.Column(db.Integer, db.ForeignKey('meeting.Mid'))

class Meeting (db.Model):
 Mid = db.Column(db.Integer,primary_key=True)
 Mname = db.Column(db.String(100))
 Des = db.Column(db.String(100))
 Date = db.Column(db.String(20))
 creator_id = db.Column(db.Integer, db.ForeignKey('user.id'))
 meetingroomm = db.relationship('MeetingRoom', backref='mroom')
 #roomno_id = db.Column(db.Integer, db.ForeignKey('meetingroom.mrid')


##json 
@app.route('/users', methods=['GET'])
def getuser():
 users = User.query.all()
 output = []
 for user in users:
  user_data = {}
  user_data['id'] = user.id
  user_data['name'] = user.name
  user_data['Email'] = user.Email
  user_data['Pass'] = user.Pass
  user_data['Phone'] = user.Phone
  user_data['Department'] = user.Department
  user_data['Major'] = user.Major
  output.append(user_data)
 return jsonify({'users' : output})


#User_schema
class UserSchema(ma.Schema):
 class Mata:
  fields = ('id', 'name', 'Email', 'Pass', 'Phone', 'Department', 'Major')

#init_schema
user_schema = UserSchema()
users_schema = UserSchema(many=True)

#create user
@app.route('/user', methods=['POST'])
def add_User():
 #id = request.json['id']
 name = request.json['name']
 Email = request.json['Email']
 Pass = request.json['Pass']
 #Phone = request.json['Phone']
 Department = request.json['Department']
 Major = request.json['Major']

 new_user = User(name, Email, Pass, Department, Major)
 db.session.add(new_user)
 db.session.commit()

 return user_schema.jsonify(new_user)

#meeting_schema
class MeetingSchema(ma.Schema):
 class Mata:
  fields = ('Mid', 'Mname', 'Des', 'Date', 'creator_id')

#init_schema
meeting_schema = MeetingSchema()
meetings_schema = MeetingSchema(many=True)

#create meeting
@app.route('/meeting', methods=['POST'])
def add_meeting():
 Mname = request.json['Mname']
 Des = request.json['Des']
 Date = request.json['Date']


 new_meeting = Meeting(Mname, Des, Date)
 db.session.add(new_meeting)
 db.session.commit()

 return user_schema.jsonify(new_meeting)


if __name__ == '__main__':
 app.run(debug=True)

第二次编辑:控制台日志

添加def错误后:

cursor.execute(statement, parameters)
sqlalchemy.exc.OperationalError: (sqlite3.OperationalError) database is locked
[SQL: INSERT INTO user (name, "Email", "Pass", "Phone", "Department", "Major") VALUES (?, ?, ?, ?, ?, ?)]
[parameters: ('User 1', 'User1@.com', 'qq1', '0551', 'IT 1', 'IT 1')]
(Background on this error at: http://sqlalche.me/e/e3q8)

共有2个答案

从开济
2023-03-14

也许错误是由于烧瓶的旧版本,所以尝试通过升级您的烧瓶版本来解决它。

打开蟒蛇提示符并输入

pip install --upgrade Flask

然后重新启动IDE

东门涵育
2023-03-14

如控制台中所示,问题是您正在使用构造函数初始化用户对象,但在类中您尚未定义任何构造函数。

定义这样的构造函数

class User(db.Model): ... 
....
   def __init__(self, username, email):
      self.username = username
      self.email = email
      # all your attributes
 类似资料:
  • 通过postman从API到数据库的post请求给了我以下响应:{“message”:“无效的对象名‘Accounts’。”} 这些是我的C#代码,我不知道我做错了什么或我错过了什么。请帮助。 > 帐户控制器。 使用AutoMapper;使用Microsoft。AspNetCore。Http;使用Microsoft。AspNetCore。Mvc;使用系统;使用系统。集合。通用;使用非洲生物医学测试

  • 偶尔我们会收到一个内部服务错误,作为来自REST API的响应。 以下是最新的:{“name”:“internal_service_error”,“message”:“an internal service error has currence”,“information_link”:“https://developer.paypal.com/webapps/developer/docs/api/

  • 我是新的角度6。我用spring boot开发了一个post服务,当我通过postman测试它时,它工作得很好,但当我用web浏览器测试它时,它给了我这个错误: HttpErrorResponse ;{headers:HttpHeaders,status:500,statusText:“ok”,URL:“http://localhost:8080/api/test/ordermiss”,ok:fa

  • 我用wordpress和woocommerce(www.jescesole.eu)建立了一个网站。由于该网站在德国销售,我不得不在最近几天安装一个附加插件,woocommerce germanized(与polylang一起,以德语和意大利语查看内容),我升级了wp和所有插件,但当客户提交订单时,会出现一条内部服务器错误消息。我阅读了服务器错误日志,并报告了一条很长的错误消息: 周四,13四月20

  • 我上传一个图像到s3,通过lambda,和一切工作正常,没有错误,但从API网关的响应是500内部服务器错误。 我按照以下教程配置了我的api网关:使用Amazon API网关集成API的二进制支持。 My lambda接收Base64图像,对其进行解码并成功上载到s3。 这是我的lambda代码: 这就是我收到的:{“消息”:“内部服务器错误”},状态代码为500。 Obs:我没有使用lambd

  • null 为什么我找不到答案: 一般的“内部服务器错误”消息意味着我不知道从哪里开始查找,因为我不确定问题是出在我身上(这将是我的默认假设)还是出在PayPal身上。 大多数解决方案都指出了生产和沙箱URL/API凭据之间的不匹配。这不是问题所在。我已成功使用沙箱凭据与沙箱链接一段时间了。 我发现的所有PayPal内部服务器错误问题都是针对使用REST API(或IPN)的人。我使用的是Class