前期环境准备
你只需要提前安装Python3.8及以上版本,官方下载地址:https://www.python.org/downloads/,安装时勾选「Add Python to PATH」选项即可。安装完成后打开终端,执行以下命令安装项目依赖:
```
pip install flask flask-sqlalchemy
```
项目结构初始化
在本地任意位置新建名为tour_guide_archive的项目文件夹,按照以下结构创建文件和文件夹,所有内容均可直接复制使用:
- tour_guide_archive/ 项目根目录
- ├─ app.py 主服务入口文件
- ├─ models.py 数据模型定义文件
- └─ templates/ 前端页面文件夹
- └─ index.html 档案管理主页文件
编写核心代码
1. 定义数据模型
打开项目下的models.py,复制粘贴以下完整代码,无需修改:
```python
from flask_sqlalchemy import SQLAlchemy
db = SQLAlchemy()
class GuideArchive(db.Model):
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(50), nullable=False, comment="导游姓名")
id_card = db.Column(db.String(18), unique=True, nullable=False, comment="身份证号")
license_no = db.Column(db.String(20), unique=True, nullable=False, comment="导游证号")
level = db.Column(db.String(10), nullable=False, comment="导游等级")
issue_date = db.Column(db.String(10), nullable=False, comment="发证日期")
expire_date = db.Column(db.String(10), nullable=False, comment="有效期至")
company = db.Column(db.String(100), nullable=False, comment="挂靠单位")
phone = db.Column(db.String(11), nullable=False, comment="联系电话")
```
2. 编写服务主逻辑
打开项目下的app.py,复制粘贴以下完整代码:
```python
from flask import Flask, render_template, request, redirect, url_for
from models import db, GuideArchive
app = Flask(__name__)
配置SQLite数据库,无需额外安装数据库服务
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///guide_archive.db'
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
db.init_app(app)
第一次运行自动初始化数据库表
with app.app_context():
db.create_all()
档案列表路由
@app.route('/')
def index():
archives = GuideArchive.query.all()
edit_archive = request.args.get('edit_archive')
return render_template('index.html', archives=archives, edit_archive=edit_archive)
新增/编辑档案保存路由
@app.route('/save', methods=['POST'])
def save():
archive_id = request.form.get('id')
if archive_id:
archive = GuideArchive.query.get(int(archive_id))
else:
archive = GuideArchive()
archive.name = request.form.get('name')
archive.id_card = request.form.get('id_card')
archive.license_no = request.form.get('license_no')
archive.level = request.form.get('level')
archive.issue_date = request.form.get('issue_date')
archive.expire_date = request.form.get('expire_date')
archive.company = request.form.get('company')
archive.phone = request.form.get('phone')
db.session.add(archive)
db.session.commit()
return redirect(url_for('index'))
编辑档案路由
@app.route('/edit/
')
def edit(archive_id):
archive = GuideArchive.query.get(archive_id)
archives = GuideArchive.query.all()
return render_template('index.html', archives=archives, edit_archive=archive)
删除档案路由
@app.route('/delete/')
def delete(archive_id):
archive = GuideArchive.query.get(archive_id)
db.session.delete(archive)
db.session.commit()
return redirect(url_for('index'))
if __name__ == '__main__':
app.run(debug=True, host='0.0.0.0', port=5000)
```
3. 编写前端管理页面

打开templates文件夹下的index.html,复制粘贴以下完整代码:
```html
导游证档案管理系统
导游证档案管理系统
| 序号 |
姓名 |
身份证号 |
导游证号 |
等级 |
发证日期 |
有效期至 |
挂靠单位 |
联系电话 |
操作 |
{% for archive in archives %}
| {{ loop.index }} |
{{ archive.name }} |
{{ archive.id_card }} |
{{ archive.license_no }} |
{{ archive.level }} |
{{ archive.issue_date }} |
{{ archive.expire_date }} |
{{ archive.company }} |
{{ archive.phone }} |
|
{% endfor %}
{% if edit_archive %}编辑档案{% else %}新增档案{% endif %}
```
启动运行与使用
打开终端,进入项目根目录tour_guide_archive,执行启动命令:
```
python app.py
```
启动完成后,打开浏览器访问 http://localhost:5000 即可进入系统,支持以下核心操作:
- 点击「新增档案」填写导游完整信息,提交后自动保存
- 点击「编辑」可修改已有档案信息
- 点击「删除」可移除无效档案,删除前二次确认避免误操作
数据备份与扩展
本系统所有档案数据都存储在项目根目录下的guide_archive.db文件中,需要备份或迁移数据时,直接复制该文件即可,更换设备后替换对应文件即可恢复所有数据。
如果需要扩展导出Excel功能,只需要执行命令pip install openpyxl,再添加对应导出路由即可,所有核心功能已经搭建完成,可直接投入日常使用。