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

Python 编程实战 · 实用工具与库 — Flask 基础入门

Flask 是 Python 生态中最灵活、最轻量的 Web 框架之一,非常适合快速构建接口、网站原型、后台服务等。它遵循 WSGI 标准,核心库极其简洁,但可以通过插件无限扩展。


1. Flask 基础概念

✔ Flask 是什么?

  • 一个 微框架(Micro Framework)
  • 默认只提供核心组件:路由、请求处理、模板、调试器
  • 需要什么功能就安装什么扩展(ORM、表单验证、JWT、数据库等)

✔ Flask 的优势

  • 代码简洁、上手快

  • 灵活度极高(不像 Django 那样有强约束)

  • 大量插件生态,如:

    • Flask-RESTful(构建 REST API)
    • Flask-SQLAlchemy(数据库 ORM)
    • Flask-Login(登录鉴权)
    • Flask-JWT-Extended(JWT)

2. Flask 环境搭建

pip install flask

验证安装:

import flask
print(flask.__version__)

3. 第一个 Flask 项目

创建 app.py

from flask import Flaskapp = Flask(__name__)@app.route('/')
def index():return "Hello Flask!"if __name__ == '__main__':app.run(debug=True)

运行:

python app.py

浏览器访问:

http://127.0.0.1:5000/

4. 路由(Routing)

路由就是 URL 与函数的映射。

① 基本路由

@app.route('/hello')
def hello():return "Hello!"

② 路由参数

@app.route('/user/<name>')
def get_user(name):return f"User: {name}"

类型转换器:

@app.route('/add/<int:a>/<int:b>')
def add(a, b):return str(a + b)

5. 请求与响应

Flask 提供 request 对象用于获取 HTTP 请求数据。

from flask import request@app.route('/login', methods=['POST'])
def login():username = request.form.get('username')return f"Welcome {username}"

✔ 获取不同数据来源:

来源写法
URL 参数request.args
表单数据request.form
JSON 数据request.json
文件上传request.files

示例:JSON 接口

@app.route('/api/add', methods=['POST'])
def api_add():data = request.jsonreturn {"result": data["a"] + data["b"]}

6. 返回 JSON 数据

推荐使用 jsonify

from flask import jsonify@app.route('/info')
def info():return jsonify({"name": "Flask", "version": 2.0})

7. 模板渲染(Jinja2)

Flask 默认使用 Jinja2 模板引擎。

目录结构:

project/app.pytemplates/index.html

app.py

from flask import render_template@app.route('/page')
def page():return render_template('index.html', title="首页")

index.html:

<h1>{{ title }}</h1>

8. 静态文件(CSS/JS/图片)

默认路径:static/

project/static/style.css

HTML 使用:

<link rel="stylesheet" href="/static/style.css">

9. 项目结构推荐(小型项目)

project/app.pytemplates/static/requirements.txt

10. Flask 扩展(常用)

功能扩展
ORMFlask-SQLAlchemy
登录鉴权Flask-Login
表单验证WTForms / Flask-WTF
REST APIFlask-RESTful
跨域Flask-Cors
JWTFlask-JWT-Extended

安装示例:

pip install flask_sqlalchemy
pip install flask_cors

11. 生产环境部署

开发环境用 Flask 自带的调试服务器即可,但生产环境应使用:

  • Gunicorn + Nginx(Linux)
  • Waitress(Windows)
  • Docker(最佳方案)

示例(Gunicorn):

gunicorn -w 4 app:app

12. 实战练习:构建简易 REST API

from flask import Flask, request, jsonifyapp = Flask(__name__)db = []@app.route('/items', methods=['GET'])
def get_items():return jsonify(db)@app.route('/items', methods=['POST'])
def add_item():item = request.jsondb.append(item)return jsonify({"msg": "added", "item": item})if __name__ == "__main__":app.run(debug=True)

测试 POST 接口:

POST /items
{"name": "apple","qty": 5
}

总结

通过这篇内容,你已经掌握 Flask 的基础技能:

✔ 搭建 Flask 项目
✔ 路由配置
✔ 请求与响应
✔ 处理 JSON / 表单
✔ 模板引擎
✔ 静态文件
✔ 推荐项目结构
✔ REST API 实战

http://www.dtcms.com/a/609350.html

相关文章:

  • supOS工厂操作系统 | 像“拼乐高”一样做数据分析
  • 青岛营销型网站推广wordpress doc导入
  • upload-labs(1-13)(配合源码分析)
  • Kubernetes-架构安装
  • 【剑斩OFFER】算法的暴力美学——二维前缀和
  • 网站开发教程全集哪些网站做的好看
  • 2025IPTV 源码优化版实测:双架构兼容 + 可视化运维
  • 建设一个网站步骤揭阳专业网站建设
  • ftp下的内部网站建设竞价培训课程
  • 技术观察 | 语音增强技术迎来新突破!TFCM模型如何攻克“保真”与“降噪”的难题?
  • FPGA系统架构设计实践5_IP的封装优化
  • UDP服务端绑定INADDR_ANY后,客户端该用什么IP访问?
  • 不同传感器前中后融合方案简介
  • 《C++在LLM系统中的核心赋能与技术深耕》
  • sward V2.1.5 版本发布,支持文档导出为html\PDF,社区版新增多种账号集成与认证
  • 东莞建站网站模板怎么做电脑网站后台
  • 物联网赋能互联网医院:构建智慧医疗新生态
  • node.js+npm的环境配置以及添加镜像(保姆级教程)
  • Java 大视界 -- 基于 Java 的大数据联邦学习在跨行业数据协同创新中的实践突破
  • 企业做网站电话约见客户的对话北京网站建设 一流
  • Android Studio + Gemini 移动开发领域的一次范式转移
  • 基于多源政策信号解析与量化因子的“12月降息预期降温”重构及黄金敏感性分析
  • LinuxC语言文件i/o笔记(第十七天)
  • Spring AI Evaluation Testing(评估测试)
  • 太仓营销型网站建设四平网站建设怎么选
  • 记一次慢接口优化:载体详情页从90秒到800毫秒的性能提升实战
  • 微软Visual Studio 2026正式登场,AI融入开发核心操作体验更流畅
  • 微软vcpkg包管理工具如何使用?
  • 提供小企业网站建设织梦网站默认密码忘记
  • 基于XTOM蓝光扫描的复杂中小尺寸零件3D形貌重建与全尺寸误差分析