AI 生成: 一个基于 Python Flask 的车辆管理系统,提供车辆的增删改查、搜索和统计功能。
This commit is contained in:
@@ -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)
|
||||
Reference in New Issue
Block a user