若依框架实现请销假管理系统代码
时间: 2024-04-30 18:19:06 浏览: 132
以下是一个简单的请销假管理系统的代码实现,使用 Flask 框架和 SQLite 数据库:
```python
from flask import Flask, render_template, request, redirect, url_for
import sqlite3
app = Flask(__name__)
app.secret_key = 'some_secret'
# 数据库连接和表创建
conn = sqlite3.connect('leaves.db')
c = conn.cursor()
c.execute('''CREATE TABLE IF NOT EXISTS leaves
(id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT NOT NULL,
leave_type TEXT NOT NULL,
start_date TEXT NOT NULL,
end_date TEXT NOT NULL,
reason TEXT NOT NULL,
status TEXT NOT NULL)''')
conn.commit()
conn.close()
# 主页
@app.route('/')
def index():
return render_template('index.html')
# 请假申请页面
@app.route('/apply', methods=['GET', 'POST'])
def apply():
if request.method == 'POST':
name = request.form['name']
leave_type = request.form['leave_type']
start_date = request.form['start_date']
end_date = request.form['end_date']
reason = request.form['reason']
status = 'Pending'
conn = sqlite3.connect('leaves.db')
c = conn.cursor()
c.execute('''INSERT INTO leaves (name, leave_type, start_date, end_date, reason, status)
VALUES (?, ?, ?, ?, ?, ?)''', (name, leave_type, start_date, end_date, reason, status))
conn.commit()
conn.close()
return redirect(url_for('index'))
else:
return render_template('apply.html')
# 请假列表页面
@app.route('/list')
def list():
conn = sqlite3.connect('leaves.db')
c = conn.cursor()
c.execute('SELECT * FROM leaves')
leaves = c.fetchall()
conn.close()
return render_template('list.html', leaves=leaves)
# 审批页面
@app.route('/approve/<int:id>', methods=['GET', 'POST'])
def approve(id):
if request.method == 'POST':
status = request.form['status']
conn = sqlite3.connect('leaves.db')
c = conn.cursor()
c.execute('UPDATE leaves SET status=? WHERE id=?', (status, id))
conn.commit()
conn.close()
return redirect(url_for('list'))
else:
conn = sqlite3.connect('leaves.db')
c = conn.cursor()
c.execute('SELECT * FROM leaves WHERE id=?', (id,))
leave = c.fetchone()
conn.close()
return render_template('approve.html', leave=leave)
if __name__ == '__main__':
app.run(debug=True)
```
这个系统有三个页面:
- 主页(`index.html`):提供链接到申请页面和请假列表页面。
- 请假申请页面(`apply.html`):提供表单填写请假信息,提交后将信息插入数据库中。
- 请假列表页面(`list.html`):显示所有请假信息,包括申请人、请假类型、开始时间、结束时间、原因和状态。
- 审批页面(`approve.html`):显示某个请假信息的详细内容,并提供审批状态的修改。
这个系统使用 SQLite 数据库存储请假信息,每个请假信息包括申请人、请假类型、开始时间、结束时间、原因和状态(Pending、Approved 或 Rejected)。管理员可以在请假列表页面中查看所有请假信息,并在审批页面中修改某个请假信息的状态。
阅读全文