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

flask web开发学习之初识flask(二)

文章目录

        • 一、创建程序实例并注册路由
          • 1. 为视图绑定绑定多个URL
          • 2. 动态URL
        • 二、启动开发服务器
          • 1. 自动发现程序实例
          • 2. 管理环境变量
          • 3. 使用pycharm运行服务器
          • 4. 更多的启动选项
          • 5. 设置运行环境
          • 6. 调试器
          • 7. 重载器


一、创建程序实例并注册路由

app.py

# 从flask包中导入flask类
from flask import Flask# 实例化Flask类
app = Flask(__name__)@app.route('/')
def index():return '<h1>Hello,Flask!<h1/>'

Flask(name) 会使用当前模块的名称作为参数,以便确定程序的根目录,从而能够找到静态文件夹和模板文件夹。

只需为函数附加app.route()装饰器,并传入URL规则做为参数,我们就可以让URL和函数建立关联。这个过程我们称作注册路由。路由负责管理URL和函数之间的映射,而这个函数则被称为视图函数

1. 为视图绑定绑定多个URL

一个视图函数可以绑定多个URL。比如下面访问’/‘和访问’/hello’都会触发index函数,得到相同响应。

@app.route('/')
@app.route('/hello')
def index():return '<h1>Hello,Flask!<h1/>'
2. 动态URL

我们不仅可以为视图函数绑定多个URL,还可以在URL规则中添加变量部分。
使用"<变量>"的形式。flask处理请求时会把变量传入视图函数,我们可以添加参数获取这个变量值。如果用户访问的url中没有添加变量,此时会返回一个404错误,这时我们可以通过添加默认参数defaluts或者设置name的默认值来设置url变量的默认值,以避免404错误。

@app.route('/')
@app.route('/hello/<name>', defaults={'name': "zly"})
def index(name='zly'):return '<h1>Hello,%s!<h1/>' % name
二、启动开发服务器

flask内置了一个简单的开发服务器(由依赖包Werkzeug提供),足够在开发环境中使用。

flask run  # 启动开发服务器

在这里插入图片描述
在这里插入图片描述

1. 自动发现程序实例

启动开发服务器后,flask可以自动探测程序实例,自动探测以下规则:

  • 从当前目录寻找app.py和wsgi.py模块,并从中寻找app或application的程序实例。
  • 从环境变量FLASK_APP对应的模块/导入路径寻找名为app或application的程序实例。
2. 管理环境变量

如果安装了python-dotenv模块,那么在使用flask run 或其它命令时它自动从.flaskenv文件和.env文件中加载环境变量。
优先级:
手动设置的环境变量>.env文件>.flaskenv文件
在这里插入图片描述
在.env文件中添加:

FLASK_RUN_HOST=0.0.0.0
FLASK_RUN_PORT=8000
3. 使用pycharm运行服务器

在pycharm中,我们可以使用内置的命令行串口执行命令来启动开发服务器,也可以使用pycharm内置的运行功能。
在这里插入图片描述
按如上进行配置即可。

4. 更多的启动选项
  • 使服务器外部可见
flask run --host=0.0.0.0

添加–host选项,将主机地址设置为0.0.0.0使其对外可见。

  • 改变默认端口
flask run --port=8000

flask提供的服务器默认监听5000端口,可通过传入port参数来改变监听端口。
可通过在环境配置文件中设置FLASK_RUN_HOST与FLASK_RUN_PORT来配置。

5. 设置运行环境

开发环境时指我们在本地编写和测试程序时的计算机环境,而生产环境是指网站部署上线供用户访问时的服务器环境。为了区分运行环境,Flask提供了一个FLASK_ENV的环境变量用来设置环境,默认为production(生产环境)。可以将其改为development(开发环境),这会开启所有支持开发的特性。同时可以通过FLASK_DEBUG来配置调试模式,1为开启,0为关闭。
在.flaskenv文件中写入:

FLASK_ENV=development
FLASK_DEBUG=1

在这里插入图片描述
在开发环境、调试模式下,这时执行flask run 启动程序会自动激活werkzeug内置的调试器以及重载器。

6. 调试器

调试器允许你在错误页面上执行Python代码。单击错误信息右侧的命令行图表,会弹出窗口要求输入PIN码,就是启动服务器时输出的PIN码,输入PIN码后,会有一个包含代码上下文信息的shell,我们可以利用他来调试。
在这里插入图片描述

7. 重载器

当我们对代码进行改动之后,期望的行为就是这些改动立刻作用到程序上。重载器的作用就是监测文件变动,然后重新启动服务器。
在这里插入图片描述
默认会使用werkzeug内置的stat重载器。他的缺点是耗电严重,准确率低。推荐使用Python库Watchdog,安装后会自动使用它来监测文件变动。

pipenv install watchdog --dev  # --dev的作用是声明为开发依赖

如果有单独的css或js文件需要按下F5进行刷新才可。

相关文章:

flask web开发学习之初识flask(二)

文章目录 一、创建程序实例并注册路由1. 为视图绑定绑定多个URL2. 动态URL 二、启动开发服务器1. 自动发现程序实例2. 管理环境变量3. 使用pycharm运行服务器4. 更多的启动选项5. 设置运行环境6. 调试器7. 重载器 一、创建程序实例并注册路由 app.py # 从flask包中导入flask类…...

利用异或、取反、自增bypass_webshell_waf

目录 引言 利用异或 介绍 eval与assert 蚁剑连接 进阶题目 利用取反 利用自增 引言 有这样一个waf用于防御我们上传的文件&#xff1a; function fun($var): bool{$blacklist ["\$_", "eval","copy" ,"assert","usort…...

K8s Docker实践三

单主机创建多个node 在Mac桌面上部署多个Kubernetes节点可以使用Minikube工具。Minikube是一个轻量级的Kubernetes工具&#xff0c;它可以在单个主机上创建一个虚拟集群。以下是在Mac桌面上使用Minikube部署多个Kubernetes节点的步骤&#xff1a; 安装Minikube&#xff0c;运…...

记录 | pip加速配置

以下方法不仅适用于linux&#xff0c;也适用于mac 临时加速配置&#xff1a; pip install -i https://pypi.douban.com/simple --trusted-host pypi.douban.com matplotlib3.4.0其中可选源有&#xff1a; https://pypi.douban.com/simple http://mirrors.aliyun.com/pypi/sim…...

HarmonyOS开发—Arkts循环渲染(ForEach)深入运用详解【鸿蒙专栏-16】

文章目录 ArkTS ForEach接口详解与应用示例ForEach接口概述介绍接口描述参数说明键值生成规则默认规则组件创建规则首次渲染非首次渲染使用场景高级用法条件渲染逻辑LazyForEach的性能优化渲染结果预期ForEach的错误使用案例与性能降低渲染结果非预期渲染性能降低结语ArkTS For…...

uniapp挽留提示2.0

项目需求&#xff1a;有时候挽留的ui是全屏的&#xff0c;用page-container也可以。后来产品提了个问题&#xff0c;手机侧滑的时候没那么顺畅&#xff08;就是一用侧滑&#xff0c;就显示出来&#xff0c;产品要的方案是如下图&#xff0c;emmm大概是这个意思&#xff09; 后面…...

电源控制系统架构(PCSA)之系统分区电压域

目录 4.1 电压域 4.1.1 系统逻辑 4.1.2 Always-On逻辑 4.1.3 处理器Clusters 4.1.4 图形处理器 4.1.5 其他功能 4.1.6 SoC分区示例 本章描述基于Arm组件的SoC划分为电压域和电源域。 所描述的选择并不详尽&#xff0c;只是可能性的一个子集。目的是描述基于Arm组件的SoC…...

[Linux] 正则表达式及grep和awk

一、正则表达式 1.1 什么是正则表达式 正则表达式是一种用于匹配和操作文本的强大工具&#xff0c;它是由一系列字符和特殊字符组成的模式&#xff0c;用于描述要匹配的文本模式。 正则表达式可以在文本中查找、替换、提取和验证特定的模式。 正则表达式和通配符的区别 正则…...

ssm+java车辆售后维护系统 springboot汽车保养养护管理系统+jsp

以前汽车维修人员只是在汽车运输行业中从事后勤保障工作,随着我国经济的发展,汽车维修行业已经从原来的从属部门发展成了如今的功能齐备的独立企业。这种结构的转变,给私营汽修企业和个体汽修企业的发展带来了契机,私营企业和个体维修企业的加入也带动了整个汽修行业的整体水平…...

HNU练习七 字符串编程题7. 机器人游戏

【问题描述】 有人建造了一些机器人&#xff0c;并且将他们放置在包含n个单元的一维网格上&#xff0c;一个长度为n的字符串s代表了他们的编排方式&#xff0c;字符串中的字符既可以是.&#xff0c;也可以是0~9之间的一个数字字符&#xff0c;字符.表示开始时在相应的单元上无机…...

【Linux】bash 终端指令

bash # 查看当前使用的shell $ echo $SHELL /bin/bash# 查看当前发行版可以使用的shell $ cat /etc/shells 或 chsh -l /bin/sh /bin/bash /sbin/nologin /bin/zsh /bin/tcsh /bin/csh# 切换bash $ chsh -s /bin/bash# 切换zsh $ chsh -s /bin/zsh进程 $ ps aux | grep pwd w…...

基于SpringBoot高校心理教育辅导设计与实现

摘 要 随着Internet技术的发展&#xff0c;心理教育辅导系统应运而生&#xff0c;心理教育辅导系统为用户提供了一个更为便利的心理测试咨询平台。所以&#xff0c;为了充分满足高校学生心理教育辅导的需求&#xff0c;特开发了本高校心理教育辅导系统。 本高校心理教育辅导系统…...

关于电脑提示vcruntime140_1.dll无法继续执行代码的解决办法

vcruntime140_1.dll是Visual C运行时库的一个组成部分&#xff0c;它包含了大量用于支持C应用程序运行时的功能。这个文件通常在开发和使用C程序时被调用&#xff0c;特别是在使用Microsoft Visual Studio进行开发时。vcruntime140_1.dll文件丢失或损坏会导致C程序无法正常运行…...

5. 链表

内存空间是所有程序的公共资源&#xff0c;在一个复杂的系统运行环境下&#xff0c;空闲的内存空间可能散落在内存各处。我们知道&#xff0c;存储数组的内存空间必须是连续的&#xff0c;而当数组非常大时&#xff0c;内存可能无法提供如此大的连续空间。此时链表的灵活性优势…...

OSI七层模型与TCP/IP四层模型的区别(计算机网络)

一、OSI七层网络模型 OSI 网络模型共有 7 层&#xff0c;分别是应用层、表示层、会话层、传输层、网络层、数据链路层和物理层。 应用层&#xff0c;负责给应用程序提供统一的接口&#xff1b;表示层&#xff0c;负责把数据转换成兼容另一个系统能识别的格式&#xff1b;会话…...

Other--什么是 CGI,FastCGI、asp、jsp

文章目录 1. 了解什么是动态网页2. 什么是 CGI2.1 CGI 概念2.2 CGI 功能2.3 CGI 作用2.4 CGI 分类2.5 CGI 程序的工作原理2.6 CGI 程序的特点2.7 CGI 程序的应用领域4. 什么是 FastCGI4.1 FastCGI 概念4.2 FastCGI 程序工作原理4.3 FastCGI 对进程的管理方式4.4 FastCGI 的特点…...

sql关联另一个表,update表的值

sql示例&#xff1a; update student_score ss set ss.names.name from student s where ss.codes.code 最常见的学生成绩表 student_score通过学生student_code关联学生信息表student 学生信息表&#xff08;student&#xff09;&#xff1a; code name age gender 1001 …...

Python基础:JSON保存结构化数据(详解)

1. JSON概念 JSON&#xff08;JavaScript Object Notation&#xff09;是一种轻量级的数据交换格式&#xff0c;易于人阅读和编写&#xff0c;也易于机器解析和生产。   虽然JSON使用JavaScript语法来描述数据对象&#xff0c;但是JSON仍然独立于语言和平台&#xff0c;JSON解…...

抑郁症日常如何调节?

抑郁症是一种常见的心理障碍&#xff0c;影响患者的情绪、思维和身体健康。以下是一些建议&#xff0c;帮助抑郁症患者进行日常调节&#xff1a; 保持积极心态&#xff1a;积极的心态是应对抑郁症的关键。尝试保持乐观、积极的态度&#xff0c;看待生活中的困难和挑战。尽管抑…...

hive两张表实现like模糊匹配关联

testa表(字段a)aaabbacccddddddaaatestb表(字段b)ab1. 使用likeconcat模糊配对 selecta.a from testa a ,testb b where a like concat(%,b.b,%) group by a.a2. 使用locate函数 selecta.a from testa a ,testb b where locate(b.b,a.a)>0 group by a.a3. 使用instr函数 sel…...

进程地址空间(比特课总结)

一、进程地址空间 1. 环境变量 1 &#xff09;⽤户级环境变量与系统级环境变量 全局属性&#xff1a;环境变量具有全局属性&#xff0c;会被⼦进程继承。例如当bash启动⼦进程时&#xff0c;环 境变量会⾃动传递给⼦进程。 本地变量限制&#xff1a;本地变量只在当前进程(ba…...

在rocky linux 9.5上在线安装 docker

前面是指南&#xff0c;后面是日志 sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo sudo dnf install docker-ce docker-ce-cli containerd.io -y docker version sudo systemctl start docker sudo systemctl status docker …...

汽车生产虚拟实训中的技能提升与生产优化​

在制造业蓬勃发展的大背景下&#xff0c;虚拟教学实训宛如一颗璀璨的新星&#xff0c;正发挥着不可或缺且日益凸显的关键作用&#xff0c;源源不断地为企业的稳健前行与创新发展注入磅礴强大的动力。就以汽车制造企业这一极具代表性的行业主体为例&#xff0c;汽车生产线上各类…...

《通信之道——从微积分到 5G》读书总结

第1章 绪 论 1.1 这是一本什么样的书 通信技术&#xff0c;说到底就是数学。 那些最基础、最本质的部分。 1.2 什么是通信 通信 发送方 接收方 承载信息的信号 解调出其中承载的信息 信息在发送方那里被加工成信号&#xff08;调制&#xff09; 把信息从信号中抽取出来&am…...

python执行测试用例,allure报乱码且未成功生成报告

allure执行测试用例时显示乱码&#xff1a;‘allure’ &#xfffd;&#xfffd;&#xfffd;&#xfffd;&#xfffd;ڲ&#xfffd;&#xfffd;&#xfffd;&#xfffd;ⲿ&#xfffd;&#xfffd;&#xfffd;Ҳ&#xfffd;&#xfffd;&#xfffd;ǿ&#xfffd;&am…...

招商蛇口 | 执笔CID,启幕低密生活新境

作为中国城市生长的力量&#xff0c;招商蛇口以“美好生活承载者”为使命&#xff0c;深耕全球111座城市&#xff0c;以央企担当匠造时代理想人居。从深圳湾的开拓基因到西安高新CID的战略落子&#xff0c;招商蛇口始终与城市发展同频共振&#xff0c;以建筑诠释对土地与生活的…...

NPOI Excel用OLE对象的形式插入文件附件以及插入图片

static void Main(string[] args) {XlsWithObjData();Console.WriteLine("输出完成"); }static void XlsWithObjData() {// 创建工作簿和单元格,只有HSSFWorkbook,XSSFWorkbook不可以HSSFWorkbook workbook new HSSFWorkbook();HSSFSheet sheet (HSSFSheet)workboo…...

【实施指南】Android客户端HTTPS双向认证实施指南

&#x1f510; 一、所需准备材料 证书文件&#xff08;6类核心文件&#xff09; 类型 格式 作用 Android端要求 CA根证书 .crt/.pem 验证服务器/客户端证书合法性 需预置到Android信任库 服务器证书 .crt 服务器身份证明 客户端需持有以验证服务器 客户端证书 .crt 客户端身份…...

海云安高敏捷信创白盒SCAP入选《中国网络安全细分领域产品名录》

近日&#xff0c;嘶吼安全产业研究院发布《中国网络安全细分领域产品名录》&#xff0c;海云安高敏捷信创白盒&#xff08;SCAP&#xff09;成功入选软件供应链安全领域产品名录。 在数字化转型加速的今天&#xff0c;网络安全已成为企业生存与发展的核心基石&#xff0c;为了解…...

MySQL体系架构解析(三):MySQL目录与启动配置全解析

MySQL中的目录和文件 bin目录 在 MySQL 的安装目录下有一个特别重要的 bin 目录&#xff0c;这个目录下存放着许多可执行文件。与其他系统的可执行文件类似&#xff0c;这些可执行文件都是与服务器和客户端程序相关的。 启动MySQL服务器程序 在 UNIX 系统中&#xff0c;用…...