改成前后端分离

This commit is contained in:
halliday 2025-10-11 16:09:07 +08:00
parent 78014142c6
commit 1008ae50d3
11 changed files with 106 additions and 0 deletions

53
mvcar/backend/app.py Normal file
View File

@ -0,0 +1,53 @@
from flask import Flask, jsonify, request
from flask_cors import CORS
import sqlite3
import os
# 获取当前文件所在目录
basedir = os.path.abspath(os.path.dirname(__file__))
db_path = os.path.join(basedir, '..', 'data', 'cars.db')
app = Flask(__name__)
CORS(app)
def get_db_connection():
conn = sqlite3.connect(db_path)
conn.row_factory = sqlite3.Row
return conn
@app.route('/api/cars', methods=['GET'])
def get_all_cars():
conn = get_db_connection()
cars = conn.execute('SELECT * FROM cars').fetchall()
conn.close()
cars_list = [dict(car) for car in cars]
return jsonify(cars_list)
@app.route('/api/cars/search', methods=['GET'])
def search_car():
plate = request.args.get('plate', '')
if not plate:
return jsonify({'error': '请输入车牌号码'}), 400
conn = get_db_connection()
cars = conn.execute('SELECT * FROM cars WHERE plate LIKE ?', (f'%{plate}%',)).fetchall()
conn.close()
cars_list = [dict(car) for car in cars]
return jsonify(cars_list)
@app.route('/api/cars/<plate>', methods=['GET'])
def get_car_by_plate(plate):
conn = get_db_connection()
car = conn.execute('SELECT * FROM cars WHERE plate = ?', (plate,)).fetchone()
conn.close()
if car is None:
return jsonify({'error': '未找到该车牌号码对应的车主信息'}), 404
return jsonify(dict(car))
if __name__ == '__main__':
app.run(debug=True, host='0.0.0.0', port=5000)

38
mvcar/backend/init_db.py Normal file
View File

@ -0,0 +1,38 @@
import sqlite3
import os
# 获取当前文件所在目录
basedir = os.path.abspath(os.path.dirname(__file__))
db_path = os.path.join(basedir, '..', 'data', 'cars.db')
# 创建数据目录(如果不存在)
os.makedirs(os.path.dirname(db_path), exist_ok=True)
# 创建数据库连接
conn = sqlite3.connect(db_path)
cursor = conn.cursor()
# 创建车辆表
cursor.execute('''
CREATE TABLE IF NOT EXISTS cars (
id INTEGER PRIMARY KEY AUTOINCREMENT,
plate TEXT UNIQUE NOT NULL,
phone TEXT NOT NULL,
brand TEXT NOT NULL
)
''')
# 插入示例数据
sample_cars = [
("京B67890", "131-2222-2222", "本田雅阁"),
("沪C11111", "132-3333-3333", "大众帕萨特"),
("浙D22222", "133-4444-4444", "奔驰E级")
]
cursor.executemany('INSERT OR IGNORE INTO cars (plate, phone, brand) VALUES (?, ?, ?)', sample_cars)
# 提交更改并关闭连接
conn.commit()
conn.close()
print("数据库初始化完成")

View File

@ -0,0 +1,2 @@
Flask==2.3.2
flask-cors==4.0.0

13
mvcar/readme.md Normal file
View File

@ -0,0 +1,13 @@
# 挪车电话查询系统
这是一个前后端分离的挪车电话查询系统使用Python Flask作为后端SQLite作为数据库HTML/CSS/JavaScript作为前端。
## 项目结构
- `backend/`: 后端代码Python Flask
- `frontend/`: 前端代码HTML/CSS/JavaScript
- `data/`: 数据库存放目录
## 安装与运行
1. 安装Python依赖