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

相关推荐
裕波1 分钟前
Vue 与 Vite 生态最新进展:迈向一体化与智能化的未来
前端·vue.js
万粉变现经纪人6 分钟前
如何解决pip安装报错ModuleNotFoundError: No module named ‘scikit-learn’问题
人工智能·python·plotly·pycharm·flask·scikit-learn·pip
西猫雷婶15 分钟前
python学智能算法(三十一)|SVM-Slater条件理解
人工智能·python·算法·机器学习·支持向量机
Warren9818 分钟前
Java泛型
java·开发语言·windows·笔记·python·spring·maven
destinying19 分钟前
当部分请求失败时,前端如何保证用户体验不崩溃?
前端·javascript·程序员
仪器科学与传感技术博士20 分钟前
python:以支持向量机(SVM)为例,通过调整正则化参数C和核函数类型来控制欠拟合和过拟合
开发语言·python·算法·机器学习·支持向量机·过拟合·欠拟合
幼儿园技术家25 分钟前
Diff算法的简单介绍
前端
陈随易25 分钟前
为VSCode扩展开发量身打造的UI库 - vscode-elements
前端·后端·程序员
叁金Coder29 分钟前
业务系统跳转Nacos免登录方案实践
前端·javascript·nginx·nacos
蓝倾29 分钟前
京东商品销量数据如何获取?API接口调用操作详解
前端·api·fastapi