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

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项目)

pip install flask

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

# 从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

from flask import Flask, render_templateapp = 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 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 模型)。

http://www.xdnf.cn/news/29215.html

相关文章:

  • JS案例-Promise/A+ 规范的手写实现
  • 【厦门大学】DeepSeek大模型赋能政府数字化转型
  • OSPF实验
  • React-memo (useMemo, useCallback)
  • PG数据库推进医疗AI向量搜索优化路径研究(2025年3月修订版)
  • 破解保险箱
  • WinForms开发基础:实现带X按钮的ClearableTextBox控件
  • spring-batch批处理框架(2)
  • EAGLE代码研读+模型复现
  • Windows使用SonarQube时启动脚本自动关闭
  • 运算符重载
  • 小刚说C语言刷题——1035 判断成绩等级
  • firewalld 防火墙
  • 深入实战:使用C++开发高性能RESTful API
  • 详解反射型 XSS 的后续利用方式:从基础窃取到高级组合拳攻击链
  • 基于Python的中国象棋小游戏的设计与实现
  • CiteULike 数据集介绍与下载指南
  • AI时代下 你需要和想要了解的英文缩写含义
  • 基于单片机的热释电红外报警器(论文+源码)
  • 基于单片机的按摩器控制系统设计
  • 单例设计模式
  • springCloud/Alibaba常用中间件全集(上)
  • MySql 三大日志(redolog、undolog、binlog)详解
  • ubuntu24.04上使用qemu+buildroot+uboot+linux+tftp+nfs模拟搭建vexpress-ca9嵌入式linux开发环境
  • 关于viewpager常见的泄漏
  • 部署rocketmq集群
  • django基于爬虫的网络新闻分析系统的设计与实现(源码+lw+部署文档+讲解),源码可白嫖!
  • 【PyTorch】colab上跑VGG(深度学习)数据集是 CIFAR10
  • B端APP设计:打破传统限制,为企业开启便捷新通道
  • 软件架构分层策略对比及Go项目实践