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

相关推荐
ViavaCos2 小时前
pnpm v11 的安全策略,让我踩了个坑
前端
Kobebryant-Manba2 小时前
学习文本处理
开发语言·python
To_OC3 小时前
从一段定时器代码,重新捋清 JS 同步、异步与 Promise
前端·javascript·代码规范
持敬chijing3 小时前
Web渗透之前后端漏洞-XSS漏洞原理攻击防御全流程
前端·安全·web安全·网络安全·网络攻击模型·安全威胁分析·xss
m0_617493943 小时前
PaddleOCR报错:OneDnnContext does not have the input Filter 解决方案汇总
python
李可以量化3 小时前
量化迅投 QMT vs 聚宽 (JoinQuant)全面分析
python·量化·qmt·ptrade·聚宽
程序员黑豆3 小时前
AI全栈开发 - Java:注释
前端·后端·ai编程
痕忆丶3 小时前
Typora 的替代marktext,marktext切换中文
前端
旅僧3 小时前
运行UMI镜像
python
ellenwan20263 小时前
期货跨期价差程序化怎么做:天勤 SP 合约与腿比例核对
python·区块链