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 模型)。

相关推荐
乘风gg7 分钟前
多 Agent 不是万能的!搞懂这 5 个原则,少走 1 年弯路!
前端·agent·ai编程
猩猩程序员41 分钟前
Vercel 推出 Agent 框架 Eve:让 AI Agent 像写 Web 应用一样简单
前端
爱读源码的大都督1 小时前
Claude Code源码分析(三):为什么系统提示词中需要有tools呢?
前端·人工智能·后端
爱勇宝1 小时前
Claude Code 被曝暗藏“隐形检测”代码:封代理不是最可怕的,可怕的是你根本不知道它在干什么
前端·后端·程序员
小牛不牛的程序员1 小时前
我用 Claude Code 半天撸完了一个完整网站,AI 编程到底提升了多少效率?
前端
东风破_1 小时前
JavaScript 面试常考的字符串算法:从反转字符串到回文判断
前端·javascript
ITOM运维行者2 小时前
从零搭建企业级服务器监控体系:踩坑实录与架构设计
前端·后端
monologues2 小时前
深入 Vue 3 源码:响应式系统的精妙设计与编译优化
前端
hunterandroid2 小时前
Paging 3 分页:从手动分页到声明式加载
前端
用户4099322502122 小时前
Vue状态管理入门第四章:组合式store和SSR风险
前端·vue.js·后端