【Flask 系统教程 1】入门及配置

当你开始学习 Flask 时,了解如何进行基本的配置是非常重要的。Flask 是一个简单而灵活的 Python Web 框架,它允许你快速构建 Web 应用程序,并且易于学习。在这篇博客中,我将介绍如何从零开始进行 Flask 的基础配置,适合初学者阅读。

入门

安装 Flask

首先,你需要确保在你的开发环境中安装了 Flask。你可以通过使用 pip 包管理器来安装 Flask:

pip install Flask

第一个Flask应用

创建 Flask 应用

创建一个基本的 Flask 应用非常简单。只需创建一个 Python 文件,并导入 Flask 类。然后,实例化一个 Flask 对象即可:

from flask import Flaskapp = Flask(__name__)

创建路由

路由定义了应用程序中的 URL 和处理请求的函数之间的映射关系。在 Flask 中,你可以使用 @app.route 装饰器来定义路由。例如,要在根路径上定义一个简单的路由:

@app.route('/')
def index():return 'Hello, Flask!'

运行应用

在你的 Flask 应用中添加一个启动代码,以便在本地运行应用。通常,你会在文件的末尾添加以下代码:

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

这将使应用在调试模式下运行,并在代码发生更改时自动重新加载

创建模板

Flask 使用 Jinja2 模板引擎来渲染动态内容。你需要在 templates 文件夹中创建 HTML 模板文件。例如,创建一个名为 index.html 的模板文件:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>My Flask App</title>
</head>
<body><h1>{{ message }}</h1>
</body>
</html>

在视图函数中渲染模板

最后,你需要在视图函数中渲染模板并传递数据。在这个示例中,我们将在根路径的视图函数中渲染 index.html 模板,并传递一个消息:

from flask import render_template@app.route('/')
def index():message = 'Hello, Flask!'return render_template('index.html', message=message)

通过以上步骤,你已经完成了一个基本的 Flask 应用程序的配置和设置。现在你可以在本地运行应用,打开浏览器访问 http://127.0.0.1:5000/,你将会看到你在模板中定义的消息。

配置

修改运行端口

from flask import Flask# 创建Flask应用
app = Flask(__name__)# 定义路由及其处理函数
@app.route('/')  # 根路由
def index():return 'Hello, world!'# 运行Flask应用并指定端口
if __name__ == '__main__':app.run(debug=True, port=5000)  # 在这里指定端口号

启动方式

上面介绍了直接运行py文件进行服务的启动,下面介绍其他的启动方法

  • 终端启动
$ export FLASK_APP=helloworld
$ flask run
* Running on http://127.0.0.1:5000/

需要注意文件路径要在 app.py所在目录下,并且文件名必须是 app.py

启动参数

参数使用示例作用
–reload / --no-reloadflask run --reload热部署
–debugger / --no-debuggerflask run --debugger调试模式 (这个才是热部署)
–with-threads / --without-threads多线程
–extra-files PATHflask run --extra-files static/;templates/;config/settings.ini增加热部署监听目录
–exclude-patterns PATHflask run --exclude-patterns “*.log” “config/*”增加热部署不监听的目录
–help获取帮助

设置配置

# 通过修改配置参数
app.config.update(DEBUG=True)
app.config['DEBUG'] = True# 通过mapping加载
app.config.from_mapping({'DEBUG':True})# 通过配置对象设置
class Config:DEBUG = True
app.config.from_object(config)# 通过配置文件设置
app.config.from_pyfile('config.py')
app.config.from_json('config.json')

通过以上方法可以在Python 文件中进行配置设置

  • 格式

config.py
DEBUG = True

config.json
{"DEBUG":"True"}

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

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

相关文章

【linux-IMX6ULL配置GPIO通用流程-以及时钟配置】

目录 1. GPIO模式控制流程1.1 LED、蜂鸣器、按键1.2 GPIO控制流程 2. 标准库的简要分析及实现&#xff1a;2.1 问题引入&#xff1a;2.2 代码实现&#xff1a; 3. 时钟配置总结&#xff1a;3.1 时钟树概要&#xff1a;3.2 IMX6ULL时钟概要及时钟树&#xff1a;3.3 IMX6ULL时钟配…

LeetCode题目99:图解中叙遍历、Morris遍历实现恢复二叉树搜索树【python】

题目描述 给你二叉搜索树的根节点 root&#xff0c;该树中的恰好两个节点的值被错误地交换。请在不改变其结构的情况下&#xff0c;恢复这棵树。 输入格式 root&#xff1a;二叉树的根节点。 输出格式 不需要返回值&#xff0c;直接在原树上进行恢复。 示例 示例 1 输入…

机器学习周记(第三十七周:语义分割)2024.4.29~2024.5.5

目录 摘要 ABSTRACT 1 DeepLabV3 1.1 空间金字塔池化&#xff08;ASPP&#xff09; 1.2 解码器&#xff08;Decoder&#xff09; 1.3 Xception 2 相关代码 摘要 DeepLabV3 是由Google Brain团队开发的深度学习模型&#xff0c;专注于语义分割任务。它采用深度卷积神经网…

QtWindows任务栏

目录 引言任务栏进度右键菜单缩略图工具栏完整代码 引言 针对Windows系统的任务栏&#xff0c;Qt基于系统的原生接口封装有一些非常见类&#xff0c;如QWinTaskbarButton、QWinTaskbarButton、QWinThumbnailToolBar等&#xff0c;用于利用工具栏提供更多的信息&#xff0c;诸如…

【CTF Web】XCTF GFSJ0482 weak_auth Writeup(弱口令+密码爆破)

weak_auth 小宁写了一个登陆验证页面&#xff0c;随手就设了一个密码。 解法 随便输入一些字符&#xff0c;提示以 admin 登录。 使用 Burp 抓包。 导入密码字典。 进行爆破。 得到密码。 账号&#xff1a;admin 密码&#xff1a;123456取得 flag。 Flag cyberpeace{42c9664…

Servlet框架

简介 Servlet是运行在web服务器或应用服务器上的程序&#xff0c;他是作为来自web浏览器或其他http客户端的请求和HTTP服务器上的数据库或应用程序之间的中间层。 使用Servlet可以手机来自网页表单的用户输入&#xff0c;呈现来自数据库或者其他源记录&#xff0c;还可以动态创…

解决网络ping不通问题

网络ping不通可能有多种原因&#xff0c;以下是一些常见的解决方法&#xff1a; 1. 检查IP地址和域名&#xff1a;确保你使用的是正确的IP地址或者域名来ping目标设备。如果IP地址或者域名错误&#xff0c;ping请求将无法到达目标设备。 2. 检查网络连接&#xff1a;首先确保…

【LeetCode刷题】153. 寻找旋转排序数组中的最小值

1. 题目链接2. 题目描述3. 解题方法4. 代码 1. 题目链接 153. 寻找旋转排序数组中的最小值 2. 题目描述 3. 解题方法 根据题目分析&#xff0c;可以明确一点&#xff0c;无论该数组如何旋转&#xff0c;都会有这样的一个性质&#xff0c;就是nums[0] > nums[n-1]&#xf…

RK3568 学习笔记 : u-boot 千兆网络无法 ping 通PC问题的解决方法二

参考 RK3568 学习笔记 : u-boot 千兆网络无法 ping 通PC问题的解决 前言 rk3568 rockchip 提供的 u-boot&#xff0c;默认的设备树需要读取 单独分区 resouce.img 镜像中的 设备树文件&#xff0c;也就是 Linux 内核的设备树 dtb 文件&#xff0c;gmac 网络才能正常的 ping 通…

STM32F1之FLASH闪存

目录 1. 简介 2. 闪存模块组织 3. FLASH基本结构 4. FLASH解锁 5. 使用指针访问存储器 6. 程序存储器全擦除 7. 程序存储器页擦除 8. 程序存储器编程 9. 选项字节 1. 简介 STM32F1系列的FLASH包含程序存储器、系统存储器和选项字节三个部分&#xff0c;通过…

2024,AI手机“元年”? | 最新快讯

文 | 伯虎财经&#xff0c;作者 | 铁观音 2024年&#xff0c;小米、荣耀、vivo、一加、努比亚等品牌的AI手机新品如雨后春笋般涌现。因此&#xff0c;这一年也被业界广泛视为AI手机的“元年” 试想&#xff0c;当你轻触屏幕&#xff0c;你的手机不仅响应你的指令&#xff0c;更…

C++项目(通讯录管理系统)

系统需求 通讯录是一个可以记录亲人、好友信息的工具。 本教程主要利用C来实现一个通讯录管理系统 系统中需要实现的功能如下: 添加联系人:向通讯录中添加新人&#xff0c;信息包括(姓名、性别、年龄、联系电话、家庭住址)最多 记录1000人 显示联系人:显示通讯录中所有联系人…

【Android】Android应用性能优化总结

AndroidApp应用性能优化总结 最近大半年的时间里&#xff0c;大部分投在了某国内新能源汽车的某款AndroidApp开发上。 由于该App是该款车上&#xff0c;常用重点应用。所以车厂对应用性能的要求比较高。 主要包括&#xff1a; 应用冷启动达到***ms。应用热(温)启动达到***ms应…

RK3568笔记二十四:基于Flask的网页监控系统

若该文为原创文章&#xff0c;转载请注明原文出处。 此实验参考 《鲁班猫监控检测》&#xff0c;原代码有点BUG&#xff0c;已经下载不了。2. 鲁班猫监控检测 — [野火]嵌入式AI应用开发实战指南—基于LubanCat-RK系列板卡 文档 (embedfire.com) 一、简介 记录简单的摄像头监…

易语言IDE界面美化支持库

易语言IDE界面美化支持库 下载下来可以看到&#xff0c;是一个压缩包。 那么&#xff0c;怎么安装到易语言中呢&#xff1f; 解压之后&#xff0c;得到这两个文件。 直接将clr和lib丢到易语言安装目录中&#xff0c;这样子就安装完成了。 打开易语言&#xff0c;在支持库配置…

在营销的世界,你一定要记住:营满,则销

营销的世界中,有一个非常重要的一件事,这几个字一定要记住: 营满,则销;营未满,则不销。 你有没有把握,这是一个没办法可以复杂的东西,真得看营销人的直觉,营跟销是独立的两件事,营在营势,销是自然而然的。这里, 什么样的客户,看到什么样的产品。会有什么样的抗…

HCIP的学习(11)

OSPF的LSA详解 LSA头部信息 ​ [r2]display ospf lsdb router 1.1.1.1----查看OSPF某一条LSA的详细信息&#xff0c;类型以及LS ID参数。 链路状态老化时间 指一条LSA的老化时间&#xff0c;即存在了多长时间。当一条LSA被始发路由器产生时&#xff0c;该参数值被设定为0之后…

32 OpenCV Harris角点检测

文章目录 cornerHarris 算子示例 角点检测 cornerHarris 算子 void cv::cornerHarris ( InputArray src,OutputArray dst,int blockSize,int ksize,double K,int borderType BORDER_DEFAULT) src:待检测Harris角点的输入图像&#xff0c;图像必须是CV 8U或者CV 32F的单通道…

Ansible——lookup,过滤器

文章目录 Ansible——lookup,过滤器lookup读取文件lookup生成随机密码lookup读取环境变量lookup读取Linux命令的执行结果lookup读取template变量替换后的文件lookup读取配置文件lookup读取DNS解析的值 过滤器过滤器使用的位置过滤器对普通变量的操作过滤器对文件路径的操作过滤…

QSqlDatabase的数据库路径或名称问题

在Qt的数据库编程中&#xff0c;先是设置数据库的类型&#xff0c;然后是设置数据库文件的路径&#xff0c;或者数据库名称。若有数据库的用户名、密码&#xff0c;则分别调用setUserName(“”)、setPassword(“”)来设置用户名和密码&#xff1b;若没有&#xff0c;则省略用户…