网站首页/ 信息中心/ 行业信息/

零基础搭建综合档案管理系统出入库管理功能模块实操指南

发布时间:2026年06月27日 11:40:05 浏览量:0

准备工作

提前安装好Python 3.8及以上版本,直接复制以下命令到终端运行,完成依赖安装:

``` pip install flask flask-sqlalchemy ```

项目初始化与代码编写

创建项目结构

在本地新建一个名为archive_manage的文件夹,在文件夹内新建一个空白文件,命名为app.py,最终结构如下:

``` archive_manage/ └── app.py ```

复制完整核心代码

将以下完整代码直接复制到app.py中,无需修改任何内容即可运行

``` from flask import Flask, request, render_template_string from flask_sqlalchemy import SQLAlchemy from datetime import datetime app = Flask(__name__) app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///dev.db' app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False db = SQLAlchemy(app) 档案基础信息表 class Archive(db.Model): id = db.Column(db.Integer, primary_key=True) archive_no = db.Column(db.String(50), unique=True, nullable=False, comment='档案编号') archive_name = db.Column(db.String(200), nullable=False, comment='档案名称') category = db.Column(db.String(100), nullable=False, comment='档案类别') status = db.Column(db.String(20), default='在库', comment='状态:在库/出库') create_time = db.Column(db.DateTime, default=datetime.now) 出入库流水表 class StockFlow(db.Model): id = db.Column(db.Integer, primary_key=True) archive_id = db.Column(db.Integer, db.ForeignKey('archive.id'), nullable=False) flow_type = db.Column(db.String(20), nullable=False, comment='类型:入库/出库') operator = db.Column(db.String(50), nullable=False, comment='经办人') flow_time = db.Column(db.DateTime, default=datetime.now) remark = db.Column(db.String(200), comment='备注') archive = db.relationship('Archive', backref=db.backref('flows', lazy=True)) 首页模板 INDEX_HTML = ''' 综合档案出入库管理

当前在库档案:{{ (archives|selectattr('status', 'equalto', '在库')|list)|length }}份

新增入库 | 查看出入库流水
{% for archive in archives %} {% endfor %}
档案编号档案名称类别状态操作
{{ archive.archive_no }} {{ archive.archive_name }} {{ archive.category }} {{ archive.status }} {% if archive.status == '在库' %}出库{% else %}已出库{% endif %}
''' 入库页模板 IN_HTML = ''' 档案入库登记

档案编号:

档案名称:

档案类别:

经办人:

备注:

返回首页

''' 出库页模板 OUT_HTML = ''' 档案出库登记

零基础搭建综合档案管理系统出入库管理功能模块实操指南

档案信息:{{ archive.archive_no }} - {{ archive.archive_name }}

经办人:

备注:

返回首页

''' 流水页模板 FLOW_HTML = ''' 出入库流水
{% for flow in flows %} {% endfor %}
档案编号档案名称业务类型经办人时间备注
{{ flow.archive.archive_no }} {{ flow.archive.archive_name }} {{ flow.flow_type }} {{ flow.operator }} {{ flow.flow_time.strftime('%Y-%m-%d %H:%M') }} {{ flow.remark }}

返回首页 ''' 路由:首页查库存 @app.route('/') def index(): archives = Archive.query.all() return render_template_string(INDEX_HTML, archives=archives) 路由:入库 @app.route('/in', methods=['GET', 'POST']) def add_in(): if request.method == 'GET': return render_template_string(IN_HTML) 保存入库 archive = Archive( archive_no = request.form.get('archive_no'), archive_name = request.form.get('archive_name'), category = request.form.get('category') ) db.session.add(archive) db.session.flush() flow = StockFlow( archive_id = archive.id, flow_type = '入库', operator = request.form.get('operator'), remark = request.form.get('remark', '') ) db.session.add(flow) db.session.commit() return '' 路由:出库 @app.route('/out/', methods=['GET', 'POST']) def add_out(archive_id): archive = Archive.query.get(archive_id) if request.method == 'GET': return render_template_string(OUT_HTML, archive=archive) archive.status = '出库' flow = StockFlow( archive_id = archive_id, flow_type = '出库', operator = request.form.get('operator'), remark = request.form.get('remark', '') ) db.session.add(flow) db.session.commit() return '' 路由:查流水 @app.route('/flow') def flow_list(): flows = StockFlow.query.order_by(StockFlow.flow_time.desc()).all() return render_template_string(FLOW_HTML, flows=flows) if __name__ == '__main__': with app.app_context(): db.create_all() app.run(debug=True, host='0.0.0.0', port=5000) ```

启动运行与功能验证

打开终端,进入你创建的archive_manage文件夹,执行以下命令启动系统:

``` python app.py ```

启动成功后,终端会输出 Running on http://127.0.0.1:5000直接用浏览器打开这个地址即可使用

核心功能操作步骤

  • 档案入库:点击首页「新增入库」,填写档案编号、名称、类别、经办人信息,提交后即可完成入库,档案自动显示在首页库存列表。
  • 档案出库:在首页找到需要出库的在库档案,点击「出库」,填写经办人信息,提交后档案状态自动变更为出库,不允许重复出库。
  • 查询流水:点击首页「查看出入库流水」,可按时间倒序查看所有出入库记录,包含完整的档案信息、经办人、操作时间和备注。

常用个性化调整实操

如果需要适配自身业务,直接修改对应内容即可,以下是常用调整方法:

新增自定义字段

例如需要新增「存放位置」字段,操作步骤为: 1. 打开app.py找到class Archive,新增一行代码:location = db.Column(db.String(100), nullable=True, comment='存放位置') 2. 找到IN_HTML模板,在备注输入框前新增一行表单:

存放位置:

3. 修改创建Archive对象的代码,新增赋值:location = request.form.get('location', '')即可生效。

按类别筛选库存

如果需要只展示某一类别的档案在首页,直接修改首页路由的查询代码即可,例如只展示合同类档案: archives = Archive.query.filter_by(category='合同类').all()

数据备份与恢复

所有业务数据都存储在项目启动后自动生成的instance/dev.db文件中,备份仅需要复制这个文件到安全位置即可,恢复使用时只需要将备份文件放回原项目路径,重启系统即可读取所有数据。

文书档案管理系统接口选不对,后期改系统要多花10万冤枉钱
文书档案管理系统接口选不对,后期改系统要多花10万冤枉钱
前阵子帮个做行政主管的朋友擦屁股。他们公司去年买的文书档案管理系统,今年要对接市里的政务归档平台,才发现系统接口根本不兼容政务系统的格式。找厂商改接口要收8万,找第三方做适配也要5万,最后折腾了一个多...
2026年06月27日 11:40:05
档案软件单机版无插件哪款好用?2024选型指南+功能实测
档案软件单机版无插件哪款好用?2024选型指南+功能实测
不少做档案管理的朋友最近都在问,有没有不带捆绑、纯本地运行的档案管理工具,毕竟带插件的版本要么弹广告、要么绑全家桶,涉密单位或者中小微企业用着总怕数据漏。今天就给大家整理了无插件单机档案软件的选型逻辑...
2026年06月27日 11:40:05
档案数字化保密规范有哪些核心要求?实操管控要点是什么?
档案数字化保密规范有哪些核心要求?实操管控要点是什么?
档案数字化保密规范是开展各类档案数字化加工,尤其是涉密、敏感档案加工必须严格遵守的合规准则,严格执行相关规范可从源头防范档案信息泄露风险,符合2025年国家档案局最新的安全管理要求。本回答将从规范核心...
2026年06月27日 11:40:05
微信咨询
电话联系
QQ客服
微信咨询一对一服务
服务热线: 028-8744 4417
QQ客服: 2305721818