从零搭建可直接落地的学校档案管理系统 全步骤拆解可直接复用

一、前期准备

环境安装

首先安装Python环境,官方下载地址:https://www.python.org/downloads/安装时必须勾选「Add Python to PATH」选项,否则后续终端无法识别Python命令。安装完成后打开终端(Windows按Win+R输入cmd回车,Mac直接打开终端),执行以下命令安装依赖,可直接复制执行:

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

项目目录创建

在本地任意位置创建名为school_archive的项目文件夹,在该文件夹内再创建两个子文件夹:一个名为templates,另一个名为uploadsuploads必须是手动创建的空文件夹,不然后续上传文件会直接报错,这是新手最容易遗漏的步骤。最终目录结构为:

  • school_archive/(项目根目录)
  • ├─ uploads/(存放上传的档案文件)
  • ├─ templates/(存放前端页面)
  • └─ app.py(后端服务文件,后续创建)

二、核心代码编写

后端服务代码

在项目根目录新建名为app.py的文件,将以下完整代码复制进去,不需要修改任何内容可直接使用:

``` from flask import Flask, render_template, request, redirect, send_from_directory from flask_sqlalchemy import SQLAlchemy import os from datetime import datetime app = Flask(__name__) app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///school_archive.db' app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False app.config['UPLOAD_FOLDER'] = os.path.join(os.path.abspath(os.path.dirname(__file__)), 'uploads') db = SQLAlchemy(app) class Archive(db.Model): id = db.Column(db.Integer, primary_key=True) student_name = db.Column(db.String(50), nullable=False) student_id = db.Column(db.String(20), unique=True, nullable=False) class_name = db.Column(db.String(50), nullable=False) archive_type = db.Column(db.String(20), nullable=False) upload_time = db.Column(db.DateTime, default=datetime.now) file_path = db.Column(db.String(200), nullable=False) @app.route('/') def archive_list(): archives = Archive.query.order_by(Archive.upload_time.desc()).all() return render_template('index.html', archives=archives) @app.route('/add', methods=['POST']) def add_archive(): student_name = request.form.get('student_name') student_id = request.form.get('student_id') class_name = request.form.get('class_name') archive_type = request.form.get('archive_type') file = request.files['archive_file'] if file: filename = f"{student_id}_{int(datetime.now().timestamp())}_{file.filename}" file.save(os.path.join(app.config['UPLOAD_FOLDER'], filename)) new_archive = Archive( student_name=student_name, student_id=student_id, class_name=class_name, archive_type=archive_type, file_path=filename ) db.session.add(new_archive) db.session.commit() return redirect('/') @app.route('/download/') def download_archive(archive_id): archive = Archive.query.get_or_404(archive_id) return send_from_directory(app.config['UPLOAD_FOLDER'], archive.file_path, as_attachment=True) @app.route('/delete/') def delete_archive(archive_id): archive = Archive.query.get_or_404(archive_id) os.remove(os.path.join(app.config['UPLOAD_FOLDER'], archive.file_path)) db.session.delete(archive) db.session.commit() return redirect('/') if __name__ == '__main__': app.run(debug=True) ```

前端页面代码

从零搭建可直接落地的学校档案管理系统 全步骤拆解可直接复用

templates文件夹内新建名为index.html的文件,复制以下完整代码,自带基础样式,可直接使用:

``` 学校档案管理系统
学校档案管理系统

新增档案

档案列表

{% for archive in archives %} {% endfor %}
姓名 学号 班级 档案类型 上传时间 操作
{{ archive.student_name }} {{ archive.student_id }} {{ archive.class_name }} {{ archive.archive_type }} {{ archive.upload_time.strftime('%Y-%m-%d %H:%M') }} 下载 删除
```

三、初始化数据库

这一步必须执行,否则系统无法存储档案数据,操作步骤如下:

  1. 打开终端,cd进入项目根目录
  2. 输入python回车,进入Python交互环境
  3. 依次输入以下两行命令,执行完成无报错说明成功: ``` from app import db db.create_all() ```
  4. 输入exit()回车,退出交互环境
执行完成后,项目根目录会自动生成school_archive.db数据库文件,说明初始化成功。

四、启动运行与验证

在终端的项目根目录下,执行以下命令启动服务: ``` python app.py ``` 启动成功后,打开浏览器,输入地址http://127.0.0.1:5000即可进入系统,可按以下步骤验证功能:

  • 填写新增档案表单,上传测试文件,提交后查看档案是否出现在列表中
  • 点击下载按钮,验证是否能正常获取档案文件
  • 点击删除按钮,验证是否能彻底删除档案记录和对应文件
以上三个功能都正常,说明系统已经搭建完成,可以投入使用。如果需要多设备访问,可按以下步骤免费部署:

五、公开访问部署(可选)

如果需要学校内部多用户访问,可免费部署到PythonAnywhere,步骤如下:

  1. 打开官网注册免费账号:https://www.pythonanywhere.com/
  2. 将本地所有项目文件上传到PythonAnywhere的文件管理中
  3. 打开Bash控制台,执行pip install flask flask-sqlalchemy安装依赖
  4. 进入Web配置,添加Flask项目,指定项目路径和app对象,重启服务即可通过分配的域名访问
免费版可满足百人以内的日常档案管理需求,不需要额外购买服务器。本系统代码可直接扩展,可根据需求增加登录验证、档案搜索、分类筛选等功能。

AI咨询
热线电话

028-85154420

15388110056

全国售前咨询电话

扫码咨询
安答联动微信公众号二维码

微信扫码关注安答联动

申请试用
热线电话
申请试用

安答联动档案管理系统