小明:嗨,小李!最近我在做一个学生宿舍管理系统的项目,你能帮我看一下吗?
小李:当然可以!你先简单介绍一下你的系统需求吧。
小明:我的系统需要记录学生的宿舍信息,包括姓名、学号、宿舍号等。同时,我还想加入一个功能,让学生可以下载他们的住宿证明文件。
小李:听起来不错!我们可以用Python来实现这个系统,搭配SQLite数据库存储数据。首先,我们创建一个简单的数据库表。
import sqlite3
conn = sqlite3.connect('dormitory.db')
cursor = conn.cursor()
cursor.execute('''
CREATE TABLE IF NOT EXISTS students (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT NOT NULL,
student_id TEXT UNIQUE NOT NULL,
dormitory_number TEXT NOT NULL
)
''')
conn.commit()
conn.close()
小明:好的,那接下来怎么添加学生信息呢?
def add_student(name, student_id, dormitory_number):
conn = sqlite3.connect('dormitory.db')
cursor = conn.cursor()
cursor.execute('''
INSERT INTO students (name, student_id, dormitory_number)
VALUES (?, ?, ?)
''', (name, student_id, dormitory_number))
conn.commit()
conn.close()
小李:现在我们有了基本的数据存储功能,接下来让我们看看如何实现文件下载功能。
from flask import Flask, send_file
app = Flask(__name__)
@app.route('/download/
def download_proof(student_id):
# 假设每个学生都有一个对应的PDF文件
return send_file(f'{student_id}_proof.pdf', as_attachment=True)
if __name__ == '__main__':
app.run(debug=True)
小明:太棒了!这样用户可以通过访问特定URL下载自己的住宿证明文件。
小李:没错,不过别忘了在实际应用中处理异常情况,比如文件不存在或权限问题。
小明:明白了,谢谢你的帮助!