用python写一个工单系统
时间: 2023-08-04 07:16:02 浏览: 75
这是一个基于Python Flask框架和MySQL数据库的简单工单系统,支持用户提交工单、查看工单状态和管理员处理工单等功能。
首先,我们需要安装Flask和MySQL驱动。可以使用以下命令进行安装:
```python
pip install Flask
pip install mysql-connector-python
```
然后,我们创建一个名为“app.py”的Python文件,用于处理Web请求和数据库操作。
```python
from flask import Flask, request, render_template, redirect, url_for
import mysql.connector
app = Flask(__name__)
# 数据库配置
db = mysql.connector.connect(
host="localhost",
user="root",
password="password",
database="workorder"
)
# 定义工单类型和状态
types = ["网络故障", "软件问题", "硬件故障"]
status = ["未处理", "处理中", "已完成"]
@app.route('/')
def index():
# 显示所有工单
cursor = db.cursor()
cursor.execute("SELECT * FROM orders")
orders = cursor.fetchall()
return render_template('index.html', orders=orders, types=types, status=status)
@app.route('/new', methods=['GET', 'POST'])
def new_order():
# 新建工单
if request.method == 'POST':
title = request.form['title']
description = request.form['description']
order_type = request.form['type']
cursor = db.cursor()
cursor.execute("INSERT INTO orders (title, description, type, status) VALUES (%s, %s, %s, %s)", (title, description, order_type, status[0]))
db.commit()
return redirect(url_for('index'))
else:
return render_template('new.html', types=types)
@app.route('/view/<int:id>')
def view_order(id):
# 查看工单详情
cursor = db.cursor()
cursor.execute("SELECT * FROM orders WHERE id=%s", (id,))
order = cursor.fetchone()
return render_template('view.html', order=order, types=types, status=status)
@app.route('/process/<int:id>')
def process_order(id):
# 处理工单
cursor = db.cursor()
cursor.execute("UPDATE orders SET status=%s WHERE id=%s", (status[1], id))
db.commit()
return redirect(url_for('view_order', id=id))
@app.route('/complete/<int:id>')
def complete_order(id):
# 完成工单
cursor = db.cursor()
cursor.execute("UPDATE orders SET status=%s WHERE id=%s", (status[2], id))
db.commit()
return redirect(url_for('view_order', id=id))
if __name__ == '__main__':
app.run(debug=True)
```
以上是一个简单的工单系统,包括了首页显示所有工单、新建工单、查看工单详情、处理工单、完成工单等功能。通过MySQL数据库进行数据存储和管理,使用Flask框架进行Web开发。可以根据实际需要进行修改和完善。