本次搭建使用Python+Flask+SQLite技术栈,无需额外安装数据库,全程零门槛,所有代码可直接复制使用,满足中小公司基础档案管理需求。
https://www.python.org/downloads/,选择对应系统的3.10+稳定版安装,安装时必须勾选「Add Python to PATH」选项,否则后续命令无法运行,安装完成后打开命令提示符,输入python --version,输出版本号即为安装成功。按照以下步骤创建项目结构,不要搞错目录层级:
company-archivestatic文件夹,再在static内新建uploads文件夹,最后在根目录新建templates文件夹,必须手动创建static/uploads目录,框架不会自动生成,文件上传时会直接报错app.py(后端主程序),在templates目录下新建文件命名为index.html(前端页面)把以下代码完整复制到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/把以下代码完整复制到templates/index.html中,自带基础样式,无需额外引入资源:
```| 档案名称 | 分类 | 描述 | 操作 |
|---|---|---|---|
| {{archive.name}} | {{archive.category}} | {{archive.description|default('无描述')}} | 下载 |
完成代码复制后,按照以下步骤启动系统:
cd D:\company-archive,如果你的项目放在其他路径,修改对应盘符和路径即可。http://127.0.0.1:5000;公司其他同局域网同事访问,需要获取你电脑的内网IP,查看内网IP方法:Windows系统命令行输入ipconfig,Mac/Linux输入ifconfig,输出中IPv4地址就是内网IP,同事浏览器输入http://你的内网IP:5000即可访问使用。