为什么选择 Flask?Web 开发的'入门钥匙'
在动手写代码之前,先想清楚两个问题:为什么要做 Web 应用?为什么选 Flask?
之前的学生管理系统只能在本机运行,数据分散,多人协作困难。而 Web 应用只要有浏览器就能访问,数据集中存储,实时共享。Flask 作为轻量级框架,配置简单,能快速把本地脚本变成在线服务,还能无缝整合 Pandas、Matplotlib 等库,非常适合这类场景。
简单来说,Flask 能以最低的学习成本,让你的本地工具变成人人可用的在线服务。
Flask 基础:从 Hello World 到 Web 服务
1. 安装依赖
Flask 是第三方库,需要先安装。同时我们还需要处理数据的 Pandas 和生成图表的 Matplotlib、Seaborn。
bash pip install flask pandas matplotlib seaborn
安装完成后,打开终端输入 import flask,若无报错即表示成功。
2. 核心概念
掌握这三个概念就能入门:
- 路由(Route):URL 与 Python 函数的映射。例如访问根 URL 对应执行首页函数。
- 视图函数(View Function):处理请求的逻辑,负责计算并返回响应(如 HTML 页面)。
- 模板(Template):使用 Jinja2 引擎渲染的 HTML 文件,可将 Python 变量动态插入页面。
3. 跑通第一个应用
创建 app.py 作为主程序:
python from flask import Flask
app = Flask(name)
@app.route('/') def index(): return "
欢迎访问学生成绩管理系统!
"if name == 'main': app.run(debug=True)
运行 python app.py,浏览器访问 http://localhost:5000/ 即可看到效果。注意开启 debug=True,这样修改代码后服务会自动重启,方便开发。
整合学生数据与 Web 页面
单纯的字符串响应不够美观,我们需要用模板渲染 HTML,展示表格数据。
1. 规范项目结构
随着功能增加,文件组织要清晰。建议结构如下:
plaintext student_web/ ├── app.py ├── students_data.csv ├── templates/ │ ├── base.html │ ├── index.html │ └── student_list.html └── static/ └── images/
2. 模板继承
多个页面会有相同的导航栏和底部信息,利用模板继承可减少重复代码。创建 templates/base.html:
html
{% block title %}学生成绩管理系统{% endblock %}© 2024 学生成绩管理系统
子页面只需填充 {% block content %} 区域即可。
3. 首页与学生列表
首页 index.html 继承 base.html,展示简介和入口。学生列表页则需要读取 CSV 数据并渲染成表格。
修改 app.py 添加列表路由:
python import pandas as pd from flask import render_template
{% for s in students %} {% endfor %} {% endblock %}

