from datetime import datetime from flask import request, jsonify from flask import * from flask_sqlalchemy import SQLAlchemy import pymysql app = Flask(__name__) app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql+pymysql://root:LH20021212@localhost:3306/智能家居系统' db = SQLAlchemy(app) try: with app.app_context(): # 尝试连接数据库 db.create_all() print("数据库连接成功!") except Exception as e: print(f"数据库连接失败: {str(e)}") class JiaJu(db.Model): _tablename_ = 'JiaJu' # 这里应该是__tablename__ id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String(100), nullable=False) color = db.Column(db.String(50)) brand = db.Column(db.String(50)) price = db.Column(db.Float, nullable=False) production_date = db.Column(db.Date, nullable=False) #增 @app.route('/add_jiaju', methods=['POST']) def add_jiaju(): data = request.get_json() # 假设前端发送的是JSON数据 new_jiaju = JiaJu( name=data['name'], color=data.get('color'), # 如果color可选,则使用get brand=data.get('brand'), price=data['price'], production_date=datetime.strptime(data['production_date'], '%Y-%m-%d') # 假定日期格式为YYYY-MM-DD ) db.session.add(new_jiaju) db.session.commit() return jsonify({"message": "家居添加成功"}), 201 #查 @app.route('/jiaju', methods=['GET']) def get_all_jiaju(): jiaju_list = JiaJu.query.all() result = [{"id": item.id, "name": item.name, "color": item.color, "brand": item.brand, "price": item.price, "production_date": item.production_date.strftime('%Y-%m-%d')} for item in jiaju_list] return jsonify(result) #获取 @app.route('/jiaju/', methods=['GET']) def get_jiaju(jiaju_id): jiaju = JiaJu.query.get_or_404(jiaju_id) return jsonify({ "id": jiaju.id, "name": jiaju.name, "color": jiaju.color, "brand": jiaju.brand, "price": jiaju.price, "production_date": jiaju.production_date.strftime('%Y-%m-%d') }) #更 @app.route('/jiaju/', methods=['PUT']) def update_jiaju(jiaju_id): jiaju = JiaJu.query.get_or_404(jiaju_id) data = request.get_json() if 'name' in data: jiaju.name = data['name'] if 'color' in data: jiaju.color = data['color'] if 'brand' in data: jiaju.brand = data['brand'] if 'price' in data: jiaju.price = data['price'] if 'production_date' in data: jiaju.production_date = datetime.strptime(data['production_date'], '%Y-%m-%d') db.session.commit() return jsonify({"message": "家居信息更新成功"}) #删 @app.route('/jiaju/', methods=['DELETE']) def delete_jiaju(jiaju_id): jiaju = JiaJu.query.get_or_404(jiaju_id) db.session.delete(jiaju) db.session.commit() return jsonify({"message": "家居删除成功"})