百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

Python 30 天探索:Flask 框架入门之旅

ccwgpt 2025-03-26 10:16 12 浏览 0 评论

在前面的学习中,我们已经在数据处理、分析以及可视化等方面积累了丰富的经验。今天,我们将踏入一个全新的领域 ——Web 开发,通过学习 Flask 框架,来开启构建 Web 应用程序的大门。Flask 是一个轻量级的 Python Web 框架,它简单易用却又功能强大,能帮助我们快速搭建起 Web 应用的雏形。现在,就让我们开启 Flask 框架的入门学习之旅吧。

一、Flask 框架的安装

要使用 Flask 框架,首先需要进行安装。如果使用常见的 pip 包管理器,可以在命令行中输入以下命令来安装 Flask:

pip install flask


安装成功后,就可以在 Python 脚本中导入 flask 模块来使用了,通常按照惯例将其导入为 Flask,示例如下:

from flask import Flask

二、Web 开发基本概念了解

  1. 请求 - 响应模型
    在 Web 开发中,请求 - 响应模型是核心机制。当客户端(比如浏览器)向服务器发送一个请求(这个请求可以包含要访问的 URL、请求方法如 GET、POST 等信息),服务器接收到请求后,会根据请求的内容进行相应的处理,然后返回一个响应给客户端。响应通常包含了状态码(如 200 表示成功、404 表示未找到资源等)、响应头(包含一些关于响应的元信息,比如内容类型等)以及响应体(实际返回给客户端的内容,比如 HTML 页面、JSON 数据等)。
  2. 路由
    路由可以理解为 URL 到相应处理函数的映射关系。在 Flask 中,我们通过定义不同的路由,来指定当客户端访问某个特定的 URL 时,服务器应该调用哪个函数来处理这个请求,并返回相应的响应内容。

三、创建简单的 Flask 应用

下面我们来创建一个非常简单的 Flask 应用,定义一个根路由并返回一个简单的 HTML 页面。

from flask import Flask

app = Flask(__name__)

@app.route('/')
def index():
    return '

欢迎来到我的第一个 Flask 应用!

' if __name__ == '__main__': app.run(debug=True)

在上述代码中:

  • 首先通过 Flask(__name__) 创建了一个 Flask 应用实例,__name__ 是 Python 的一个内置变量,在这里用于确定应用的根目录等相关信息。
  • 然后使用 @app.route('/') 装饰器定义了一个根路由(即当用户访问网站的根目录,也就是 http://localhost:5000/ 时,这里 5000 是 Flask 应用默认运行的端口号),对应的处理函数是 index()。在这个函数中,直接返回了一个简单的 HTML 字符串,它会作为响应内容返回给客户端,在浏览器中显示为一个带有标题的页面。
  • 最后通过 if __name__ == '__main__': 判断来确保只有当脚本直接运行时才启动应用,调用 app.run(debug=True) 来运行应用,并且开启调试模式(这样在开发过程中,如果代码有改动,服务器会自动重新加载,方便调试)。

四、学习使用 Flask 模板引擎(Jinja2)

在实际的 Web 应用中,我们往往需要根据不同的情况动态地渲染 HTML 页面,这时候就需要用到模板引擎了。Flask 默认使用 Jinja2 作为模板引擎,它允许我们在 HTML 模板中嵌入变量、控制结构等,然后在 Flask 应用中将实际的数据传递进去进行渲染。

  1. 创建带有变量的 HTML 模板
    首先,在项目目录下创建一个名为 templates 的文件夹(Flask 会默认在这个文件夹中查找模板文件),然后在里面创建一个名为 index.html 的文件,内容如下:



    
    Flask 模板示例


    

欢迎,{{ name }}!

今天的天气是 {{ weather }}。

在这个模板中,我们使用了双大括号 {{ }} 来定义变量占位符,name 和 weather 就是我们后续要从 Flask 应用中传递过来并动态替换的变量。

  1. 在 Flask 应用中使用模板并传递数据
    修改之前的 Flask 应用代码如下:
from flask import Flask, render_template

app = Flask(__name__)

@app.route('/')
def index():
    user_name = "小明"
    weather_info = "晴天"
    return render_template('index.html', name=user_name, weather=weather_info)

if __name__ == '__main__':
    app.run(debug=True)

在上述代码中:

  • 首先从 flask 模块中导入了 render_template 函数,它用于渲染 HTML 模板并返回相应的结果。
  • 在 index() 函数中,定义了两个变量 user_name 和 weather_info,分别赋值为 "小明" 和 "晴天",然后通过 render_template 函数将这两个变量传递给 index.html 模板(第一个参数是模板文件名,后面的参数是以关键字参数形式传递的变量及其对应的值),Jinja2 模板引擎会自动将模板中的变量占位符替换为实际传递的值,最终将渲染好的 HTML 页面作为响应返回给客户端。

通过今天对 Flask 框架入门知识的学习,我们迈出了 Web 开发的第一步,掌握了创建简单 Flask 应用、定义路由以及使用模板引擎动态渲染 HTML 页面的基本方法。在后续的学习中,我们将进一步深入探索 Flask 的更多高级功能,构建更加复杂和实用的 Web 应用程序。



#Flask 框架入门# #Web 开发基础# #请求响应模型# #路由定义# #Flask 模板引擎# #Python Web 应用#

相关推荐

NET版本众多,傻傻分不清楚

面对.NET众多的版本,尤其还有几个名称的情况下,相信很多初学C#的开发人员都很困惑,搞不清究竟该怎么选择。下面就列举一下.NET的主要版本及其区别:.NETFramework(传统版本,仅适用于W...

.NET Framework 和 .NET Core 有啥区别?如何选择?

.NETFramework和.NETCore都是由Microsoft开发的软件框架,用于创建Windows应用程序和Web应用程序。它们的主要区别在于:支持的操作系统:.NET...

「分享」介绍一款倍受欢迎的.NET 开源UI库

概述今天要带大家了解的是一款WPF的开源控件库MahApps.Metro。MahApps.Metro是用于创建现代WPF应用程序的工具包,它许多开箱即用的好东西。目前支持的NETFramework...

.NET 5.0正式版发布:应用可在ARM64上原生运行

更多:o梵蒂冈图书馆频繁遭黑客攻击oNPM包被发现窃取敏感的Discord和浏览器文件o作者:硬核老王o(本文字数:712,阅读时长大约:1分钟).NET5.0正式版发布:应用可...

盘点8个热门.Net开源项目

一、SmartFormat:轻量级文本模板库,轻松替代string.Format项目地址:https://github.com/axuno/SmartFormatSmartFormat不仅继承了s...

.NET与Java开发:一场从框架到应用实例的深度对决

在软件开发这片广袤的战场上,.NET与Java两大开发平台如同两位身经百战的将军,各自率领着庞大的开发者队伍,在不同的应用场景中大放异彩。今天,我们就来一场从框架到应用实例的深度对决,看看这两大平台究...

TouchSocket:一个功能强大且易于使用的 .NET 网络通信框架

项目介绍TouchSocket是一个功能强大且易于使用的.NET网络通信框架,适用于C#、VB.Net和F#等语言。它提供了多种通信模块,包括TCP、UDP、SSL、WebSocket、Mo...

远离报错烦恼!深入全面掌握.NET Framework

由于Windows系统对.NETFramework这一系统组件有着极为特殊的要求,而部分应用软件及游戏对其的依赖性也近乎达到了驱动级的水准,使用或安装不当会遭遇许多“未知”的问题,因此如何掌握.NE...

想自己搭建.Net Web框架,开源项目太庞大看不懂,可以看这个教程

大家好,我是编程乐趣。一直以来,我都在运营知识星球,这个月也开始全职专心编写教程了。当时编写教程,就是发现很多程序员工作多年了,都没自己搭建过框架,也没接触过公司的框架底层代码。这就导致一些问题,无法...

.NET 8 + React 18 一体化开发框架!苏州码农十年匠心打磨

开篇前言从2014年入行至今,从WebForms到MVC,从JavaScript到React/Vue,从.NETFramework到.NETCore/8,技术栈的变迁伴随了我整个职业生涯。去年,我...

.Net Framework详解

相信有不少小伙伴遇到过这种情况:安装软件时提示.NetFramework未安装导致软件无法打开,或者需要安装.NetFramework4.0以上的组件。那.NetFramework是什么呢?....

系统小技巧:深入全面掌握.NET Framework

由于Windows系统对.NETFramework这一系统组件有着极为特殊的要求,而部分应用软件及游戏对其的依赖性也近乎达到了驱动级的水准,使用或安装不当会遭遇许多“未知”的问题,因此如何掌握.NE...

前端架构师成长之路:如何在 Vue 的计算属性中传递参数

在Vue中,计算属性(computed)是从其他响应式属性派生的属性,是用于自动监听响应式属性的变化,从而动态计算返回值。计算属性(computed)通常是一个没有参数的函数。当然如果需要像调...

Vue2 vs Vue3:核心差异与升级指南

Vue3自2020年发布以来,凭借其革命性的改进迅速成为开发者关注的焦点。本文将从架构设计、API模式、性能优化等多个维度深入对比Vue2和Vue3的核心差异,并提供代码示例帮助开发者...

突发!Vue3 投屏神器引爆程序员朋友圈

【AlarmLevel】重要【AlarmTitle】突发!Vue3投屏神器引爆程序员朋友圈【AlarmOverview】最近GitHub上名为vue-screen-share的仓库突...

取消回复欢迎 发表评论: