当前位置: 首页 > news >正文

Flask 安装使用教程

一、Flask 简介

Flask 是一个使用 Python 编写的轻量级 Web 应用框架,核心设计理念是简单易用、模块化扩展性强。Flask 提供了路由、模板、请求响应等基本功能,适合构建中小型网站、RESTful API、微服务架构等。


二、环境准备

2.1 安装 Python

确保已安装 Python 3.7 或以上版本:

python --version

如未安装,可前往:https://www.python.org/downloads/


2.2 创建虚拟环境(推荐)

python -m venv venv
source venv/bin/activate   # macOS/Linux
venv\Scripts\activate    # Windows

三、安装 Flask

使用 pip 安装:

pip install flask

验证安装:

python -m flask --version

四、创建第一个 Flask 应用

4.1 编写 app.py

from flask import Flaskapp = Flask(__name__)@app.route("/")
def hello():return "Hello, Flask!"

4.2 运行应用

export FLASK_APP=app.py          # macOS/Linux
set FLASK_APP=app.py             # Windows
flask run

默认监听地址:http://127.0.0.1:5000


五、路由与视图函数

@app.route("/user/<username>")
def show_user(username):return f"User: {username}"

六、模板渲染(Jinja2)

6.1 创建模板文件夹

project/
├── app.py
└── templates/└── hello.html

6.2 编写 HTML 模板 hello.html

<!DOCTYPE html>
<html><body><h1>Hello, {{ name }}!</h1></body>
</html>

6.3 后端渲染

from flask import render_template@app.route("/hello/<name>")
def hello_name(name):return render_template("hello.html", name=name)

七、表单处理与请求数据

from flask import request@app.route("/login", methods=["GET", "POST"])
def login():if request.method == "POST":username = request.form["username"]return f"Welcome, {username}!"return '''<form method="post"><input name="username"><input type="submit"></form>'''

八、调试模式与热重载

开发时可启用调试模式:

export FLASK_ENV=development   # macOS/Linux
set FLASK_ENV=development      # Windows
flask run

九、项目结构推荐

project/
├── app/
│   ├── __init__.py
│   ├── routes.py
│   ├── models.py
│   └── templates/
├── venv/
└── run.py

十、常见问题

Q1: 启动报错 ImportError

请确认模块名、环境变量是否正确设置。

Q2: 修改代码后无效?

请启用调试模式,或手动重启 Flask 服务。


十一、推荐学习资源

  • Flask 中文文档
  • Flask 官方文档
  • 菜鸟教程 Flask 教程
  • Miguel Grinberg Flask Mega-Tutorial

本文由“小奇Java面试”原创发布,转载请注明出处。

可以搜索【小奇JAVA面试】第一时间阅读,回复【资料】获取福利,回复【项目】获取项目源码,回复【简历模板】获取简历模板,回复【学习路线图】获取学习路线图。

在这里插入图片描述

http://www.lryc.cn/news/579216.html

相关文章:

  • Pillow 安装使用教程
  • IO进程线程 (进程)
  • Rust实现黑客帝国数字雨特效
  • CppCon 2018 学习:Feather: A Modern C++ Web Development Framework
  • FPGA的开发流程
  • 旋转不变子空间( ESPRIT) 算法
  • 基于SpringBoot的场地预定管理系统
  • 新版本没有docker-desktop-data分发 | docker desktop 镜像迁移
  • 当AR遇上深度学习:实时超声肾脏分割与测量技术全解析
  • FastAPI 安装使用教程
  • 人脸活体识别3:C/C++实现人脸眨眼 张嘴 点头 摇头识别(可实时检测)
  • 回顾JAVA中的锁机制
  • 重塑智能体决策路径:深入理解 ReAct 框架
  • WPF路由事件:冒泡、隧道与直接全解析
  • 嵌入式软件面经(四)Q:请说明在 ILP32、LP64 与 LLP64 三种数据模型下,常见基本类型及指针的 sizeof 值差异,并简要解释其原因
  • 软件开发早期阶段,使用存储过程的优势探讨:敏捷开发下的利器
  • 【C++】--入门
  • 欧拉角、四元数和旋转矩阵的变换关系以及无人机的坐标变换
  • 如何在Excel中每隔几行取一行
  • sqlmap学习笔记ing(3.[MoeCTF 2022]Sqlmap_boy,cookie的作用)
  • LeetCode Hot 100 滑动窗口 【Java和Golang解法】
  • 鸿蒙开发技巧---去除字符串两端的空格
  • AI大模型如何重塑软件开发流程?从自动化革命到人机共生范式
  • 怎样理解:source ~/.bash_profile
  • 深入Flink核心概念:解锁大数据流处理的奥秘
  • SAP WM LT10 TO创建增强
  • Android Auto即将带来变革
  • Agno(一)
  • 机器学习在智能制造业中的应用:质量检测与设备故障预测
  • Vue + RuoYi 前后端分离入门手册