以下是一份针对新手的 Flask 开发入门文档,涵盖环境搭建、核心功能及常用模块实现,附带完整可运行代码:

Flask 新手入门开发文档

一、环境搭建

1. 安装 Python

  • 下载地址:Python 官网(推荐 3.9+ 版本)
  • 安装时勾选 “Add Python to PATH”

2. 创建虚拟环境

# 新建项目文件夹
mkdir flask_demo &&
cd flask_demo
# 创建虚拟环境
python -m venv venv
# 激活虚拟环境
# Windows:
venv\Scripts\activate
# Mac/Linux:
source venv/bin/activate

3. 安装 Flask 及扩展

# 基础 Flask
pip install flask
# 常用扩展(后续功能会用到)
pip install flask-sqlalchemy # 数据库ORM
pip install flask-wtf # 表单处理
pip install flask-login # 用户认证
pip install requests # 网络请求(爬虫用)
pip install beautifulsoup4 # 网页解析(爬虫用)

二、Hello World 入门

1. 第一个 Flask 程序

创建 app.py 文件:

from flask import Flask
# 初始化 Flask 应用
app = Flask(__name__)
# 定义路由(访问 http://127.0.0.1:5000/ 时触发)
@app.route('/')
def index():
return "Hello, Flask!"
# 启动服务器
if __name__ == '__main__':
app.run(debug=True) # debug=True 表示开发模式,自动重启

2. 运行程序

python app.py

访问 http://127.0.0.1:5000 即可看到 “Hello, Flask!”

三、项目结构规范

推荐目录结构(后续功能基于此结构开发):

flask_demo/
├── app.py              # 主程序入口
├── config.py           # 配置文件
├── models.py           # 数据模型(数据库表)
├── routes/             # 路由模块
│   ├── __init__.py
│   ├── auth.py         # 登录注册路由
│   └── file.py         # 文件上传下载路由
├── static/             # 静态文件(CSS/JS/图片)
│   └── style.css
├── templates/          # 模板文件(HTML)
│   ├── base.html       # 基础模板(继承用)
│   ├── login.html      # 登录页面
│   └── upload.html     # 文件上传页面
└── uploads/            # 上传文件存储目录

四、核心功能实现

1. 页面解析(模板渲染)

Flask 使用 Jinja2 模板引擎,支持变量、循环、条件判断等。

(1)创建基础模板 templates/base.html
<!DOCTYPE html>
  <html>
    <head>
        <meta charset="UTF-8">
      <title>{% block title %}Flask 示例{% endblock %}</title>
          <link rel="stylesheet" href="{
        { url_for('static', filename='style.css') }}">
      </head>
      <body>
        <nav>
        <a href="/">首页</a>
        <a href="/login">登录</a>
        <a href="/upload">文件上传</a>
        </nav>
          <div class="content">
          {% block content %}{% endblock %} <!-- 子模板内容会插入这里 -->
          </div>
        </body>
      </html>
(2)创建子模板 templates/index.html
{% extends "base.html" %} <!-- 继承基础模板 -->
  {% block title %}首页{% endblock %}
  {% block content %}
<h1>欢迎来到首页</h1>
  <p>当前时间:{
  { current_time }}</p> <!-- 接收变量 -->
    <ul>
      {% for item in items %} <!-- 循环示例 -->
        <li>{
        { item }}</li>
        {% endfor %}
      </ul>
      {% endblock %}
(3)渲染模板的路由(在 app.py 中添加)
from flask import render_template
from datetime import datetime
@app.route('/home')
def home():
# 传递变量到模板
data = {

'current_time': datetime.now().strftime('%Y-%m-%d %H:%M:%S'),
'items': ['Flask', 'Python', 'Web开发']
}
return rend
posted on 2025-09-15 19:14  ycfenxi  阅读(8)  评论(0)    收藏  举报