文章目录

  • 前言
  • 一、什么是 Flask?
    • 📌 Flask 的优势
      • 1. 轻量灵活
      • 2. 易于上手
      • 3. 可扩展性强
      • 4. 自由度高
      • 5. 社区活跃,资料丰富
    • Flask 主要用来做什么?
  • 二、Flask快速入门
    • 1.创建一个Flask项目
    • 2.开启debug,修改host,端口
      • 开启debug
      • 修改host,端口
  • 总结


前言

在当今 Web 开发领域,框架的选择多种多样,从功能齐全的 Django 到异步高性能的 FastAPI,不同项目和需求对应不同的解决方案。而如果你想用 Python 快速搭建一个简单、灵活、可扩展的小型 Web 应用或 API 服务,Flask 无疑是一个非常适合入门和实践的选择。
**Flask 是一款轻量级 Web 应用框架,核心简单、上手容易,几行代码就能跑起一个网站。**它秉承“微内核、可扩展”的理念,将 Web 应用开发的基本功能做到极致简洁,其他复杂功能通过丰富的扩展库实现,让开发者能够根据项目需求自由组合和设计。
我写这篇文章的目的,就是希望带大家一起从零开始,了解 Flask 的基本概念、开发流程和常见用法,帮助刚接触 Python Web 开发的同学,快速入门,掌握搭建 Web 项目的基础能力。
如果你也是:

  • 想学习 Web 后端开发,却不想一开始就被复杂项目结构困扰;
  • 希望了解 Python Web 应用的基本工作原理;
  • 计划为自己的项目或学习做一个轻量的 Web 界面或 API 服务;

那么,这篇文章就是为你准备的。我们会循序渐进,从环境搭建、基础路由、模板渲染到简单表单处理,逐步构建一个属于自己的小型网站。


一、什么是 Flask?

Flask 是一个用 Python 编写的轻量级 Web 应用框架。它的设计哲学是“保持核心简单,将额外功能交给扩展来完成”。
简单来说,Flask 让你可以用非常少量的代码,快速搭建起一个 Web 网站或接口服务。

它基于 Python 的 WSGI(Web Server Gateway Interface)标准和 Werkzeug 工具库,同时内置了强大的模板引擎 Jinja2,让 Web 开发变得简单灵活。

📌 Flask 的优势

为什么很多人喜欢用 Flask 开发 Web 项目?它有以下几个显著优点:

1. 轻量灵活

Flask 的核心功能很精简,只包含基本的 Web 服务功能,其他功能通过插件扩展。开发者可以根据项目需求,自由添加或移除功能,避免臃肿。

2. 易于上手

API 简单直观,入门门槛低。哪怕是刚学 Python 的同学,也能在短时间内搭建一个 Web 应用。

3. 可扩展性强

Flask 拥有丰富的第三方扩展库,比如数据库集成(Flask-SQLAlchemy)、用户认证(Flask-Login)、表单验证(Flask-WTF)等,能够轻松满足复杂业务需求。

4. 自由度高

不像 Django 那样强制项目结构,Flask 允许你根据项目大小和开发习惯,灵活组织代码结构和模块化设计。

5. 社区活跃,资料丰富

Flask 有庞大的开发者社区,中文和英文教程、博客、示例项目非常多,学习资源充足。

Flask 主要用来做什么?

虽然 Flask 是“轻量级”框架,但它的用途非常广泛,常见应用场景包括:

  • Web 网站:搭建个人博客、公司官网、管理后台等网页应用。
  • RESTful API 服务:为移动端、小程序、前后端分离项目提供数据接口。
  • 内容管理系统(CMS):如后台管理平台、内容发布系统等。
  • 小型应用原型:快速搭建 MVP 产品或功能 Demo。
  • 自动化运维工具:开发内部管理或自动化工具的 Web 界面。

二、Flask快速入门

1.创建一个Flask项目

我这边使用的是Idea旗下的PyCharm编程工具用来编写程序
https://www.jetbrains.com/pycharm/
在这里插入图片描述

打开PyCharm点击“New Project”
在这里插入图片描述
选择“Flask”,检查对应的Python版本,点击“Create”即可
在这里插入图片描述
创建好的Flask项目会有一个初始的app.py
在这里插入图片描述
执行右上角的“Run”即可运行项目;运行完成后,在控制台会有对应的访问路径,点击访问路径即可有项目弹窗出来。
在这里插入图片描述
在这里插入图片描述

2.开启debug,修改host,端口

开启debug

在开发过程中,如果每次修改代码后都需要手动重启项目,不仅操作繁琐,而且浪费时间和开发资源。为了解决这个问题,Flask 提供了 debug 模式,开启后,应用会在代码发生变动时自动重启并加载最新配置,大大提升了开发效率。
找到Edit Configurations
在这里插入图片描述
点击Modify options
在这里插入图片描述
将Flask debug勾选上。Apply即可
在这里插入图片描述

修改host,端口

在开发阶段,Flask 默认会将应用运行在 127.0.0.1(即本地回环地址)和 5000 端口上。这意味着应用只能在当前机器上访问,其他设备无法通过局域网访问你的项目。
我们需要修改host和端口号
Additional options 勾选上;在左侧框内填写如下内容

--host=0.0.0.0 --port=8000

在这里插入图片描述
:上述修改也可在代码中进行修改

if __name__ == '__main__':app.run(debug=True, host='0.0.0.0', port=5000)

总结

本文介绍了轻量级Python Web框架Flask的特点与快速入门方法。Flask以微内核设计为核心,具有轻量灵活、易上手、扩展性强等优势,适合搭建小型网站、API服务和原型开发。文章通过PyCharm创建Flask项目的实操演示,详细讲解了如何开启Debug模式及修改Host和端口配置,帮助开发者快速构建Web应用。Flask的简洁特性使其成为Python Web开发的理想入门选择。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/web/88493.shtml
繁体地址,请注明出处:http://hk.pswp.cn/web/88493.shtml
英文地址,请注明出处:http://en.pswp.cn/web/88493.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

实习第一个小需求样式问题总结

Vue2 vxe-table Element UI 表头下拉详情实现总结一、核心功能实现表头下拉按钮交互初始尝试 expand-change 事件无法满足需求&#xff0c;改用 vxe-table 的 toggle-row-expand 事件&#xff1a;<vxe-table toggle-row-expand"handleExpandChange"><temp…

Linux中LVM逻辑卷扩容

在Linux系统中对根目录所在的LVM逻辑卷进行扩容&#xff0c;需要依次完成 物理卷扩容 ➔ 卷组扩容 ➔ 逻辑卷扩容 ➔ 文件系统扩容 四个步骤。以下是详细操作流程&#xff1a;一、确认当前磁盘和LVM状态# 1. 查看磁盘空间使用情况 df -h /# 2. 查看块设备及LVM层级关系 lsblk# …

微软365 PDF导出功能存在本地文件包含漏洞,可泄露敏感服务器数据

微软365的"导出为PDF"功能近期被发现存在严重的本地文件包含(Local File Inclusion, LFI)漏洞&#xff0c;攻击者可利用该漏洞获取服务器端的敏感数据&#xff0c;包括配置文件、数据库凭证和应用程序源代码。该漏洞由安全研究员Gianluca Baldi发现并报告给微软&…

台球 PCOL:极致物理还原的网页斯诺克引擎(附源码深度解析)

> 无需下载,打开浏览器即可体验专业级斯诺克!本文将揭秘网页版台球游戏的物理引擎与渲染核心技术 在游戏开发领域,台球物理模拟一直被视为**刚体动力学皇冠上的明珠**。今天我们要解析的**台球 PCOL**(Pure Canvas Online Billiards)正是一款突破性的网页版斯诺克游戏…

springboot-2.3.3.RELEASE升级2.7.16,swagger2.9.2升级3.0.0过程

一、pom文件版本修改<parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.7.16</version><relativePath/> </parent>如果用到了“spring-boot-starter…

Python-正则表达式-信息提取-滑动窗口-数据分发-文件加载及分析器-浏览器分析-学习笔记

序 欠4前年的一份笔记 &#xff0c;献给今后的自己。 正则表达式 概述 正则表达式&#xff0c;Regular Expression&#xff0c;缩写为regex、regexp、RE等。 正则表达式是文本处理极为重要的技术&#xff0c;用它可以对字符串按照某种规则进行检索、替换。 1970年代&…

一文入门神经网络:神经网络概念初识

神经网络的世界远比你想象得更丰富多元。从基础架构到前沿融合模型&#xff0c;我为你梳理了当前最值得关注的神经网络类型&#xff0c;不仅包括那些“教科书级”的经典模型&#xff0c;也覆盖了正在改变行业格局的新兴架构。以下是系统分类与核心特点总结&#xff1a;一、基础…

线上事故处理记录

线上事故处理记录 一、MySQL 导致的服务器 CPU 飙升 有一天&#xff0c;突然收到了服务器 CPU 飙升的告警信息&#xff0c;打开普罗米修斯查看 CPU 的使用情况&#xff0c;发现 CPU 确实飙升了&#xff0c;下面开始去进行问题定位了。 1. 首先连接到对应的服务器&#xff0c;然…

ParaCAD 笔记 png 图纸标注数据集

ParaCAD-Dataset git lfs install git clone https://www.modelscope.cn/datasets/yuwenbonnie/ParaCAD-Dataset.git https://github.com/ParaCAD/ 不止100g 下个最小的 没有三视图

C#使用Semantic Kernel实现Embedding功能

1、背景 C#开发中&#xff0c;可以通过Semantic Kernel实现本地模型的调用和实现。 本地的Ollama的版本如下&#xff1a;安装的Package如下&#xff1a;2、代码实现 // See https://aka.ms/new-console-template for more information using Microsoft.Extensions.AI; using Mi…

转转APP逆向

APP版本 11.15.0 接口分析 # URL https://app.zhuanzhuan.com/zz/transfer/search# header cookie xxx x-zz-monitoring-metrics feMetricAntiCheatLevelV1 zztk user-agent Zhuan/11.15.0 (11015000) Dalvik/2.1.0 (Linux; U; Android 10; Pixel 3 Build/QQ3A.200805.001) z…

注解与反射的完美配合:Java中的声明式编程实践

注解与反射的完美配合&#xff1a;Java中的声明式编程实践 目录 引言 核心概念 工作机制 实战示例 传统方式的痛点 注解反射的优势 实际应用场景 最佳实践 总结 引言 在现代Java开发中&#xff0c;我们经常看到这样的代码&#xff1a; Range(min 1, max 50)priva…

开源入侵防御系统——CrowdSec

1、简介 CrowdSec 是一款现代化、开源、基于行为的入侵防御系统&#xff08;IDS/IPS&#xff09;&#xff0c;专为保护服务器、服务、容器、云原生应用而设计。它通过分析日志检测可疑行为&#xff0c;并可基于社区协作共享恶意 IP 黑名单&#xff0c;从而实现分布式防御。 其…

imx6ull-裸机学习实验13——串口格式化函数移植实验

目录 前言 格式化函数 实验程序编写 stdio文件夹 main.c Makefile修改 编译下载 前言 在学习实验12&#xff1a;imx6ull串口通信实验&#xff0c;我们实现了 UART1 基本的数据收发功能&#xff0c;虽然可以用来调试程序&#xff0c;但是功能太单一了&#xff0c;只能输出…

CCF-GESP 等级考试 2025年6月认证C++三级真题解析

1 单选题&#xff08;每题 2 分&#xff0c;共 30 分&#xff09;第1题 8位二进制原码能表示的最小整数是&#xff1a;&#xff08; &#xff09;A. -127 B. -128 C. -255 …

【网络安全】服务间身份认证与授权模式

未经许可,不得转载。 文章目录 问题背景用户到服务的身份认证与授权系统对系统的通信服务与服务之间的通信需求分析Basic Auth(基本身份认证)优点缺点mTLS 证书认证优点缺点OAuth 2.0优点缺点JWS(JSON Web Signature)优点缺点结合 Open Policy Agent 的 JWS 方案优点缺点结…

【EGSR2025】材质+扩散模型+神经网络相关论文整理随笔(四)

An evaluation of SVBRDF Prediction from Generative Image Models for Appearance Modeling of 3D Scenes输入3D场景的几何和一张参考图像&#xff0c;通过扩散模型和SVBRDF预测器获取多视角的材质maps&#xff0c;这些maps最终合并成场景的纹理地图集&#xff0c;并支持在任…

Grid网格布局完整功能介绍和示例演示

CSS Grid布局是一种强大的二维布局系统&#xff0c;可以将页面划分为行和列&#xff0c;精确控制元素的位置和大小。以下是其完整功能介绍和示例演示&#xff1a; 基本概念 网格容器&#xff08;Grid Container&#xff09;&#xff1a;应用display: grid的元素。网格项&#x…

学习C++、QT---21(QT中QFile库的QFile读取文件、写入文件的讲解)

每日一言把大目标拆成小步&#xff0c;每天前进一点点&#xff0c;终会抵达终点。QFile读取文件我们记事本要进行读取文件、写入文件、等等的操作&#xff0c;那么这个时候我们的QT有一个QT类叫做QFile这个类的话是专门对于文件操作的&#xff0c;所以我们来学习我们在QT的帮助…

AD736ARZ-R7精密真有效值转换器 高精度测量的首选方案

AD736ARZ-R7精密转换器产品概述AD736ARZ-R7是ADI&#xff08;Analog Devices Inc.&#xff09;推出的一款低功耗、高精度的真有效值&#xff08;RMS&#xff09;转直流&#xff08;DC&#xff09;转换器&#xff0c;采用SOIC-8封装&#xff0c;适用于需要精确测量交流或复杂波形…