当前位置: 首页 > 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.dtcms.com/a/265255.html

相关文章:

  • C#上位机串口接口
  • Hamilton系统特征线法下的非线性PDE解与爆破时间分析
  • C++ 完美转发(泛型模板函数)
  • ssh连接服务器,有了ip和private key,还需要其它吗
  • 技术学习_大语言模型
  • el-button/button置灰及原理
  • 应急响应类题练习——玄机第一章 应急响应- Linux入侵排查
  • 代码随想录算法训练营第四十三天|动态规划part10
  • 2025-6GESP六级编程题分析
  • 如何保证缓存和数据库的双写一致性
  • Python训练营Day1
  • 软件测试用例大全
  • 基于大模型的智能体中由自主性引发的安全风险综述
  • CLIP heat map generation
  • 【深度学习:进阶篇】--4.2.词嵌入和NLP
  • MinHook 如何对 .NET 母体 CoreCLR 进行拦截
  • 在米联客4EV上部署tinyriscv
  • 【深度学习新浪潮】国内零样本抗体设计的科研进展如何?
  • docker-compose.yml 文件详解——AI教你学Docker
  • 从一个开发的角度切入mysql索引,查询优化
  • C Primer Plus 第6版 编程练习——第6章(上)
  • 设计模式-享元模式
  • JAVA内存区域划分
  • WEB测试总结
  • ubuntu 安装neo4j
  • 七、分工说明
  • 南方大暴雨及洪水数据分析与可视化
  • 爬虫从入门到精通(22) |TLS指纹
  • 【RHCSA-Linux考试题目笔记(自用)】servera的题目
  • 【C++】--入门