操作系统:Windows 10/11 或 macOS 10.15+,需安装 Python 3.8 及以上版本。执行以下命令验证版本:
```python --version```若未安装,直接从官方地址下载对应版本:Windows 64位下载地址:https://www.python.org/ftp/python/3.11.4/python-3.11.4-amd64.exe;macOS 下载地址:https://www.python.org/ftp/python/3.11.4/python-3.11.4-macos11.pkg。安装时务必勾选“Add Python to PATH”,完成后打开命令提示符(Windows)或终端(macOS),执行依赖安装命令:
```pip install flask flask-sqlalchemy flask-wtf python-dotenv```等待依赖安装完成,无报错即为环境就绪。
新建文件夹命名为admin_mediation_archive,在该文件夹内新建3个核心文件和1个子文件夹:app.py、config.py、.env、templates(用于存放前端页面)。
完整代码直接复制,无修改需求:
```python import os from dotenv import load_dotenv load_dotenv() class Config: SECRET_KEY = os.getenv('SECRET_KEY', 'admin_mediation_2024') SQLALCHEMY_DATABASE_URI = os.getenv('DATABASE_URL', 'sqlite:///./mediation.db') SQLALCHEMY_TRACK_MODIFICATIONS = False ```完整代码直接复制,可直接运行:
```python from flask import Flask, render_template, request, redirect, url_for from flask_sqlalchemy import SQLAlchemy from flask_wtf import FlaskForm from wtforms import StringField, TextAreaField, DateField, SubmitField from wtforms.validators import DataRequired app = Flask(__name__) app.config.from_object('config.Config') db = SQLAlchemy(app) 行政调解档案数据库模型 class MediationArchive(db.Model): id = db.Column(db.Integer, primary_key=True) case_no = db.Column(db.String(50), nullable=False, unique=True) party_a = db.Column(db.String(100), nullable=False) party_b = db.Column(db.String(100), nullable=False) mediation_date = db.Column(db.Date, nullable=False) content = db.Column(db.Text, nullable=False) result = db.Column(db.Text, nullable=False) 档案录入表单定义 class ArchiveForm(FlaskForm): case_no = StringField('案件编号', validators=[DataRequired()]) party_a = StringField('申请人', validators=[DataRequired()]) party_b = StringField('被申请人', validators=[DataRequired()]) mediation_date = DateField('调解日期 (YYYY-MM-DD)', validators=[DataRequired()]) content = TextAreaField('调解内容', validators=[DataRequired()]) result = TextAreaField('调解结果', validators=[DataRequired()]) submit = SubmitField('提交') 初始化数据库(仅需执行一次) with app.app_context(): db.create_all() 首页路由:录入+查询 @app.route('/', methods=['GET', 'POST']) def index(): form = ArchiveForm() if form.validate_on_submit(): new_archive = MediationArchive( case_no=form.case_no.data, party_a=form.party_a.data, party_b=form.party_b.data, mediation_date=form.mediation_date.data, content=form.content.data, result=form.result.data ) db.session.add(new_archive) db.session.commit() return redirect(url_for('index')) archives = MediationArchive.query.all() return render_template('index.html', form=form, archives=archives) if __name__ == '__main__': app.run(host='0.0.0.0', port=5000, debug=True) ```完整内容直接复制,无需修改:
``` SECRET_KEY=admin_mediation_2024 DATABASE_URL=sqlite:///./mediation.db ```在templates文件夹内新建index.html,完整代码:
案件编号:{{ archive.case_no }}
申请人:{{ archive.party_a }} | 被申请人:{{ archive.party_b }}

调解日期:{{ archive.mediation_date.strftime('%Y-%m-%d') }}
调解内容:{{ archive.content }}
调解结果:{{ archive.result }}
打开命令提示符/终端,进入admin_mediation_archive文件夹,按顺序执行以下3条命令:
dir(Windows)或ls(macOS),应显示app.py、config.py、.env、templates文件夹python app.py,看到终端输出数据库创建信息后,按Ctrl+C停止服务python app.py服务启动后,在浏览器输入地址:http://localhost:5000,即可访问系统。
所有表单字段必须完整填写,日期需为YYYY-MM-DD格式(如2024-05-20),点击“提交”后自动跳转,页面会显示新增的档案记录。
系统自动展示所有已录入档案,无需额外操作,每条记录包含案件编号、当事人、日期、内容和结果,可直接查看。
如需导出档案,先安装依赖:pip install pandas openpyxl,在app.py末尾添加以下路由:
重启服务后,修改templates/index.html的标签后添加导出按钮:
再次启动服务后,页面右上角会显示“导出Excel”按钮,点击即可下载所有档案的Excel文件。