AI 生成: 一个基于 Python Flask 的车辆管理系统,提供车辆的增删改查、搜索和统计功能。

This commit is contained in:
admin
2026-09-29 18:07:16 +08:00
commit 798550e1f3
8 changed files with 678 additions and 0 deletions
+78
View File
@@ -0,0 +1,78 @@
# -*- 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/<int:vid>')
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/<int:vid>', 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/<int:vid>', 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/<int:vid>', 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)