Python:使用web框架Flask搭建网站

Date: 2025.04.19 20:30:43 author: lijianzhan

Flask 是一个轻量级的 Python Web 开发框架,以简洁灵活著称,适合快速构建中小型 Web 应用或 API 服务。以下是 Flask 的核心概念、使用方法和实践指南

Flask 的核心特点:

  1. 轻量级
    核心代码仅约 1,000 行,无强制依赖,可通过扩展灵活添加功能。
  2. 简单易学
    路由、模板、请求处理等基础功能通过少量代码即可实现。
  3. 灵活扩展
    支持通过插件(如 Flask-SQLAlchemy、Flask-WTF)增强数据库、表单、认证等功能。
  4. 开发友好
    内置调试器和热重载(开发模式),支持快速迭代。

Flask安装
Flask是第一个第三方库。与其他模块一样,安装时可以直接使用python的pip命令实现。不过首先需要保证python要安装好。(ps:安装方式有两种一种通过命令行安装flask,第二种使用Pycharm直接创建Flask项目)

bash 复制代码
pip install flask

1.快速入门,打开编辑器,新建index.py文件

python 复制代码
# 从flask框架中导⼊Flask类
from flask import Flask

# 传⼊__name__初始化⼀个Flask实例
app = Flask(__name__)

# app.route装饰器映射URL和执⾏的函数。这个设置将根URL映射到了hello_world函数上
@app.route('/')
def index():
    return 'Welcome to New Website'

if __name__ == '__main__':
    # 运⾏本项⽬,host=127.0.0.1设置虚拟主机,port指定访问的端⼝
    app.run(host="127.0.0.1", port=5000, debug=True)


2.运行后,在浏览器输入代码里设置好的ip地址以及端口号

3.动态路由与模板渲染

创建app.py

python 复制代码
from flask import Flask, render_template

app = Flask(__name__)

@app.route('/user/<username>')
def show_user(username):
    return render_template('user.html', name=username)

if __name__ == '__main__':
    app.run(host="127.0.0.1", port=8000, debug=True)

创建templates目录下的user.html

html 复制代码
<html lang="utf8">
<head>
    <title>User</title>
</head>
<body>
    <h1>Hello, {{ name }}!</h1>
</body>
</html>



总结:通过 Flask 的灵活性和丰富的扩展生态,开发者可以快速实现从简单网页到复杂 API 的全功能应用。

额外说明:

常用扩展推荐

Flask-SQLAlchemy 数据库 ORM 支持 pip install Flask-SQLAlchemy

Flask-WTF 表单处理与 CSRF 防护 pip install Flask-WTF

Flask-Login 用户认证与会话管理 pip install Flask-Login

Flask-RESTful 快速构建 RESTAPI pip install Flask-RESTful

Flask-SocketIO WebSocket 支持 pip install Flask-SocketIO

进阶学习资源

官方文档:Flask文档

书籍推荐:《Flask Web开发实战》(李辉)

实战项目:

1.构建一个博客系统(集成数据库和用户认证)。

2.开发 REST API 提供机器学习模型推理服务(如调用 PyTorch 模型)。

相关推荐
侃山13 分钟前
Multi-Query Attention (MQA) PyTorch 实现
pytorch·python
around_0124 分钟前
python课堂随记
python
拉不动的猪32 分钟前
简单回顾下useMemo
前端·javascript·面试
摸鱼仙人~43 分钟前
RAGFlow在Docker中运行Ollama直接运行于主机的基础URL的地址
python
Chen三变1 小时前
基于Python的中国象棋小游戏的设计与实现
开发语言·python
烛阴1 小时前
JavaScript 求幂运算符:告别 Math.pow(),拥抱更优雅的次方计算!
前端·javascript
厚衣服_31 小时前
Python语法系列博客 · 第7期[特殊字符] 列表推导式与字典推导式:更优雅地处理数据结构
java·数据结构·python
染的人1 小时前
Layui Table组件,设置data数据源,以及page为False,表格只能显示10条数据的问题
前端·layui
玖玖passion1 小时前
js中的栈
前端·算法
warm...1 小时前
Python基础总结(七)之条件语句
开发语言·python·条件语句·if