# -*- coding: utf-8 -*- """车辆管理系统 - Flask 应用入口""" from flask import Flask, render_template, request, jsonify, redirect, url_for import models app = Flask(__name__) @app.route('/') def index(): """首页:展示车辆列表,支持搜索""" keyword = request.args.get('q', '').strip() vehicles = models.list_vehicles(keyword or None) stat = models.stats() return render_template('index.html', vehicles=vehicles, keyword=keyword, stats=stat) @app.route('/edit/') def edit_page(vid): """编辑页面""" vehicle = models.get_vehicle(vid) if not vehicle: return redirect(url_for('index')) return render_template('edit.html', vehicle=vehicle) # ------------------ REST API ------------------ @app.route('/api/vehicles', methods=['GET']) def api_list(): keyword = request.args.get('q', '').strip() return jsonify(models.list_vehicles(keyword or None)) @app.route('/api/vehicles', methods=['POST']) def api_add(): data = request.get_json(force=True, silent=True) or {} if not data.get('plate') or not data.get('brand') or not data.get('model'): return jsonify({'error': 'plate, brand, model 为必填项'}), 400 try: vid = models.add_vehicle(data) except Exception as e: return jsonify({'error': str(e)}), 400 return jsonify({'id': vid, 'message': '添加成功'}), 201 @app.route('/api/vehicles/', methods=['GET']) def api_get(vid): v = models.get_vehicle(vid) if not v: return jsonify({'error': '未找到'}), 404 return jsonify(v) @app.route('/api/vehicles/', methods=['PUT']) def api_update(vid): if not models.get_vehicle(vid): return jsonify({'error': '未找到'}), 404 data = request.get_json(force=True, silent=True) or {} models.update_vehicle(vid, data) return jsonify({'message': '更新成功'}) @app.route('/api/vehicles/', methods=['DELETE']) def api_delete(vid): models.delete_vehicle(vid) return jsonify({'message': '删除成功'}) @app.route('/api/stats', methods=['GET']) def api_stats(): return jsonify(models.stats()) if __name__ == '__main__': models.init_db() app.run(host='0.0.0.0', port=5000, debug=True)