网站首页/ 信息中心/ 档案百科/

从零搭建可落地的公司内部档案管理系统 完整实操步骤指南

发布时间:2026年08月18日 15:50:30 浏览量:0

准备工作

本次搭建使用Python+Flask+SQLite技术栈,无需额外安装数据库,全程零门槛,所有代码可直接复制使用,满足中小公司基础档案管理需求。

环境安装步骤

项目初始化

按照以下步骤创建项目结构,不要搞错目录层级:

编写核心代码

1. 后端主程序app.py

把以下代码完整复制到app.py中,所有配置已经预先设置好,可直接使用,如需修改密码可自行调整对应变量:

``` from flask import Flask, render_template, request, send_from_directory from flask_sqlalchemy import SQLAlchemy import os app = Flask(__name__) SQLite数据库配置,无需额外安装数据库 app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///archive.db' app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False 管理密码,可自行修改为自定义密码 ADMIN_PASSWORD = "company_archive2024" db = SQLAlchemy(app) 档案数据表模型 class Archive(db.Model): id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String(100), nullable=False) category = db.Column(db.String(50), nullable=False) description = db.Column(db.Text) filename = db.Column(db.String(200), nullable=False) 初始化数据库表 with app.app_context(): db.create_all() 首页路由 @app.route('/') def index(): categories = [i.category for i in Archive.query.with_entities(Archive.category).distinct()] archives = Archive.query.all() return render_template('index.html', categories=categories, archives=archives) 上传档案接口 @app.route('/upload', methods=['POST']) def upload(): password = request.form.get('password') if password != ADMIN_PASSWORD: return "密码错误,上传失败,请返回首页" file = request.files['file'] name = request.form.get('name') category = request.form.get('category') description = request.form.get('description') 保存文件,避免重名覆盖 save_name = f"{category}_{int(os.stat(file).st_ctime)}_{file.filename}" file.save(os.path.join('static', 'uploads', save_name)) 存入数据库 new_archive = Archive(name=name, category=category, description=description, filename=save_name) db.session.add(new_archive) db.session.commit() return "上传成功,返回首页" 下载档案接口 @app.route('/download/') def download(filename): return send_from_directory('static/uploads', filename, as_attachment=True) 搜索档案接口 @app.route('/search') def search(): keyword = request.args.get('keyword', '') category = request.args.get('category', '') query = Archive.query if keyword: query = query.filter(Archive.name.contains(keyword) | Archive.description.contains(keyword)) if category: query = query.filter(Archive.category == category) categories = [i.category for i in Archive.query.with_entities(Archive.category).distinct()] archives = query.all() return render_template('index.html', categories=categories, archives=archives, keyword=keyword, select_category=category) if __name__ == '__main__': host=0.0.0.0允许公司同局域网其他设备访问,改为127.0.0.1则仅本地访问 app.run(host='0.0.0.0', port=5000, debug=False) ```

2. 前端页面index.html

把以下代码完整复制到templates/index.html中,自带基础样式,无需额外引入资源:

``` 公司档案管理系统
公司内部档案管理系统

上传新档案

档案名称:

从零搭建可落地的公司内部档案管理系统 完整实操步骤指南

档案分类:

档案描述:

管理密码:

选择文件:

{% for archive in archives %} {% endfor %}
档案名称分类描述操作
{{archive.name}} {{archive.category}} {{archive.description|default('无描述')}} 下载
```

启动运行与内网访问

完成代码复制后,按照以下步骤启动系统:

  • 1. 打开命令提示符,进入项目根目录,执行命令:cd D:\company-archive,如果你的项目放在其他路径,修改对应盘符和路径即可。
  • 2. 输入启动命令: ``` python app.py ```
  • 3. 访问系统:本地访问直接打开浏览器输入http://127.0.0.1:5000;公司其他同局域网同事访问,需要获取你电脑的内网IP,查看内网IP方法:Windows系统命令行输入ipconfig,Mac/Linux输入ifconfig,输出中IPv4地址就是内网IP,同事浏览器输入http://你的内网IP:5000即可访问使用。

常见问题解决

  • 1. 提示「python不是内部或外部命令」:重新运行Python安装程序,勾选「Add Python to PATH」选项后完成安装即可。
  • 2. 上传文件时报500错误:检查是否已经手动创建了static/uploads目录,目录层级是否正确,以及uploads目录是否有读写权限。
  • 3. 其他同事无法访问:检查Windows防火墙是否开放5000端口,或临时关闭防火墙测试,确认IP地址是否正确。
太原档案数字化服务流程是怎样的?大概需要多少钱?
太原档案数字化服务流程是怎样的?大概需要多少钱?
太原档案数字化服务通常包含需求分析、方案制定、现场整理、扫描加工、数据挂接、验收交付等核心流程,费用根据档案数量、纸张状况、数字化标准等因素综合计算,2026年市场价格范围大致在每页0.5元至2元之间...
2026年08月18日 15:50:30
微信咨询
电话联系
QQ客服
微信咨询一对一服务
服务热线: 028-8744 4417
QQ客服: 2305721818