Python 我正在制作一个烧瓶+;ReactJs项目和my flask api中出现以下错误:AttributeError:';员工';对象没有属性';追加';
这是我的FlaskAPI代码。我使用sqlalchemy连接了数据库,并为表查询创建了一个模型。 我正在处理一个Flask+ReactJs项目,在我的Flask api中出现以下错误:AttributeError:“Employee”对象没有属性“append”Python 我正在制作一个烧瓶+;ReactJs项目和my flask api中出现以下错误:AttributeError:';员工';对象没有属性';追加';,python,reactjs,flask,sqlalchemy,Python,Reactjs,Flask,Sqlalchemy,这是我的FlaskAPI代码。我使用sqlalchemy连接了数据库,并为表查询创建了一个模型。 我正在处理一个Flask+ReactJs项目,在我的Flask api中出现以下错误:AttributeError:“Employee”对象没有属性“append” from flask import Flask, jsonify, request from flask_sqlalchemy import SQLAlchemy import json with open('C:\\Users\\n
from flask import Flask, jsonify, request
from flask_sqlalchemy import SQLAlchemy
import json
with open('C:\\Users\\new\\Desktop\\ems\\api\\venv\\config.json', 'r') as c:
params = json.load(c)["params"]
local_server = True
app = Flask(__name__)
app.secret_key = 'super-secret-key'
app.config['UPLOAD_FOLDER'] = params['upload_location']
if local_server:
app.config['SQLALCHEMY_DATABASE_URI'] = params['local_uri']
else:
app.config['SQLALCHEMY_DATABASE_URI'] = params['prod_uri']
db = SQLAlchemy(app)
class Employee(db.Model):
sno = db.Column(db.Integer, primary_key=True)
id = db.Column(db.Integer, nullable=False)
name = db.Column(db.String, nullable=False)
email = db.Column(db.String, nullable=False)
contact = db.Column(db.Integer, nullable=False)
designation = db.Column(db.String, nullable=False)
date = db.Column(db.String, nullable=True)
@app.route("/employee")
def employee():
employee_list = Employee.query.all()
employee = []
for employee in employee_list:
employee.append({'id' : employee.id,
'name' : employee.name,
'email' : employee.email,
'contact' : employee.contact,
'designation' : employee.designation})
return jsonify({'employee' : employee})
@app.route("/add", methods=['POST'])
def add():
employee_data = request.get_json()
new_employee = Employee(id = employee_data['id'],
name = employee_data['name'],
email = employee_data['email'],
contact = employee_data['contact'],
designation = employee_data['designation'])
db.session.add(new_employee)
db.session.commit()
return 'Added Successfully', 201
if __name__ == '__main__':
app.run(debug=True)```
您有三个名称相同的对象(这不是一个好的做法,因为它会让您感到困惑,并最终引入与刚才遇到的一样的bug):
- 员工(1):烧瓶路线的功能
- 员工(2):您试图附加到的空列表
- employee(3):for循环中当前元素的名称
employee()
没有问题。但是employee\u列表中employee的两个变量employee=[]
和最终发生冲突,python最终删除employee=[]
,现在employee
指向循环中的项,该项没有append
方法,因为它是类employee
中的对象
要解决此问题,请更改列表的名称或循环变量的名称
@app.route(“/employee”)
def employee():
employee\u list=employee.query.all()
employees=[]#您正在尝试运行employee.append
,尽管这样的函数不存在,也没有定义。您需要创建函数,并在调用它之前使其执行某些操作。