Python武器库开发-flask篇之路由和视图函数(二十二)

news2024/11/20 2:46:15

flask篇之路由和视图函数(二十二)

通过创建路由并关联函数,实现一个基本的网页:

#!/usr/bin/env python3
from flask import Flask

# 用当前脚本名称实例化Flask对象,方便flask从该脚本文件中获取需要的内容
app = Flask(__name__)

#程序实例需要知道每个url请求所对应的运行代码是谁。
#所以程序中必须要创建一个url请求地址到python运行函数的一个映射。
#处理url和视图函数之间的关系的程序就是"路由",在Flask中,路由是通过@app.route装饰器(以@开头)来表示的
@app.route("/")
#url映射的函数,要传参则在上述route(路由)中添加参数申明
def index():
    return "Hello World!"

# 启动一个本地开发服务器,激活该网页
if __name__ == '__main__':
    app.run()

现在我们保存这个脚本然后去运行它

python3 app.py

在这里插入图片描述

然后使用任意浏览器输入地址 http://127.0.0.1:5000,即可访问该界面

在这里插入图片描述

通过绑定路由实现多个视图函数:

#!/usr/bin/env python3
from flask import Flask

# 用当前脚本名称实例化Flask对象,方便flask从该脚本文件中获取需要的内容
app = Flask(__name__)

#程序实例需要知道每个url请求所对应的运行代码是谁。
#所以程序中必须要创建一个url请求地址到python运行函数的一个映射。
#处理url和视图函数之间的关系的程序就是"路由",在Flask中,路由是通过@app.route装饰器(以@开头)来表示的
@app.route("/")
#url映射的函数,要传参则在上述route(路由)中添加参数申明
def index():
    return "Hello World!"
#处理url和视图函数之间的关系的程序就是"路由",在Flask中,路由是通过@app.route装饰器(以@开头)来表示的,通过在浏览器中使用/a便可以访问该视图函数
@app.route("/a")
def add():
	return "1+1=2"

# 启动一个本地开发服务器,激活该网页
if __name__ == '__main__':
    app.run()

现在我们保存这个脚本然后去运行它

在这里插入图片描述

然后使用任意浏览器输入地址 http://127.0.0.1:5000/a,便可以访问第二个视图函数的页面

在这里插入图片描述

动态路由传入变量实现视图函数:

#!/usr/bin/env python3
from flask import Flask

# 用当前脚本名称实例化Flask对象,方便flask从该脚本文件中获取需要的内容
app = Flask(__name__)

#通过格式<>,来实现动态路由
@app.route("/usr/<username>"):
def user_index(username):
	#在函数中指明变量名称username,就能够获取通过路由传入的变量username
	return "Hello{}".format(username)

# 启动一个本地开发服务器,激活该网页
if __name__ == '__main__':
    app.run()

现在我们保存这个脚本然后去运行它

在这里插入图片描述

然后使用任意浏览器输入地址 http://127.0.0.1:5000/user/动态变量,便可以访问该视图函数

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

通过格式<int:变量>,来实现动态路由传入指定的参数:

#!/usr/bin/env python3
from flask import Flask

# 用当前脚本名称实例化Flask对象,方便flask从该脚本文件中获取需要的内容
app = Flask(__name__)

#通过格式<int:变量>,来实现动态路由传入指定的参数
@app.route("/post/<int:post_id>"):
def show_post(post_id):
	#在函数中指明变量名称post_id,就能够获取通过路由传入的变量post_id
	return "Post {}".format(post_id)

# 启动一个本地开发服务器,激活该网页
if __name__ == '__main__':
    app.run()

现在我们保存这个脚本然后去运行它

在这里插入图片描述

然后使用任意浏览器输入地址 http://127.0.0.1:5000/post/1,传入指定的 int 型传参,便可以访问该视图函数

在这里插入图片描述

在这里插入图片描述

但如果此时我们传入的参数不是一个数字型的参数,而是一个字符型的参数,则界面会显示报错

在这里插入图片描述

通过debug模式,来实现时实修改代码:

之前的案列中我们都是通过修改代码之后在运行代码来实现某个功能的运行的,这样很麻烦,现在来教大家一个时实修改代码,而不用重启运行代码的方式,现在我们向app.run()函数中添加debug=True来启动debug模式

#!/usr/bin/env python3
from flask import Flask

# 用当前脚本名称实例化Flask对象,方便flask从该脚本文件中获取需要的内容
app = Flask(__name__)

#程序实例需要知道每个url请求所对应的运行代码是谁。
#所以程序中必须要创建一个url请求地址到python运行函数的一个映射。
#处理url和视图函数之间的关系的程序就是"路由",在Flask中,路由是通过@app.route装饰器(以@开头)来表示的
@app.route("/")
#url映射的函数,要传参则在上述route(路由)中添加参数申明
def index():
    return "Hello World!"
#处理url和视图函数之间的关系的程序就是"路由",在Flask中,路由是通过@app.route装饰器(以@开头)来表示的,通过在浏览器中使用/a便可以访问该视图函数
@app.route("/a")
def add():
	return "1+1=2"

# 启动一个本地开发服务器,激活该网页
if __name__ == '__main__':
	#通过debug=True启动debug模式
    app.run(debug=True)

现在我们保存这个脚本以debug的模式去运行它

在这里插入图片描述

然后使用任意浏览器输入地址 http://127.0.0.1:5000/a,便可以访问第二个视图函数的页面

在这里插入图片描述

现在如果我们想要动态调试代码,那就再打开一个终端界面

vim app.py

在这里插入图片描述

然后将代码修改为以下的代码,保存退出即可

#!/usr/bin/env python3
from flask import Flask

# 用当前脚本名称实例化Flask对象,方便flask从该脚本文件中获取需要的内容
app = Flask(__name__)

#程序实例需要知道每个url请求所对应的运行代码是谁。
#所以程序中必须要创建一个url请求地址到python运行函数的一个映射。
#处理url和视图函数之间的关系的程序就是"路由",在Flask中,路由是通过@app.route装饰器(以@开头)来表示的
@app.route("/")
#url映射的函数,要传参则在上述route(路由)中添加参数申明
def index():
    return "Hello World!"
#处理url和视图函数之间的关系的程序就是"路由",在Flask中,路由是通过@app.route装饰器(以@开头)来表示的,通过在浏览器中使用/b便可以访问该视图函数
@app.route("/b")
def add():
	return "1+1=2"

# 启动一个本地开发服务器,激活该网页
if __name__ == '__main__':
	#通过debug=True启动debug模式
    app.run(debug=True)

这一步我们不需要再去重新启动脚本了,因为该脚本一直再以debug的模式运行,然后使用任意浏览器输入地址 http://127.0.0.1:5000/b,便可以访问我们刚刚修改过的视图函数的页面

在这里插入图片描述

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

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

相关文章

【移远QuecPython】EC800M物联网开发板的SIM卡初始化和网络状态检测

【移远QuecPython】EC800M物联网开发板的SIM卡初始化和网络状态检测 文章目录 SIM卡初始化导入库获取SIM状态 网络检测导入库等待网络就绪 函数打包附录&#xff1a;列表的赋值类型和py打包列表赋值BUG复现代码改进优化总结 py打包 SIM卡初始化 导入库 import sim获取SIM状态…

java入门, 记录检测网络

一、需求 在开发中&#xff0c;我们经常需要本地连接服务器&#xff0c;或者数据库这些机器或者组件&#xff0c;但是有时候网络不通&#xff0c;我们怎样检测&#xff0c;除了ping 和 telnet 还需要那些常用的技能。 二、检测网络 1、一般我们先ping一些需要连接的网络ip 或…

msys2 + MSVC(VS2019)编译ffmpeg6.0源码

以前使用的v1.2版&#xff0c;很多功能和使用方法发生了变化&#xff0c;需要重新编译新的ffmpeg版。 编译环境: windows 10 , VS2019, MSYS2 1. msys2 下载安装 MSYS2 , https://www.msys2.org/ 2. msys2 环境配置打开 msys2 2.1 安装相关软件 然后输入以下命令安装&…

C++命名空间,函数重载

一、C命名空间 使用过C的人都知道在引入<iostream>头文件后需要加上这样一行代码 using namespace std; 但是对于初学者来说不仔细研究一下可能都不知道为什么需要这样一行代码&#xff0c;接下来将对其进行解释&#xff0c;引入命名空间的概念 C在C的基础上增加了命…

C语言--每日五道选择题--Day12

第一题 1、如下程序的功能是&#xff08; &#xff09; #include <stdio.h> int main() {char ch[80] "123abcdEFG*&";int j;puts(ch);for(j 0; ch[j] ! \0; j){if(ch[j] > A && ch[j] < Z){ch[j] ch[j] e - E;}}puts(ch);return 0; } A…

Spring-boot Mybatis-plus 实战应用

文章目录 前言一、springBoot 集成mybatis-plus1.1 maven 引入依赖&#xff1a;1.2 配置数据源&#xff1a;&#xff1a; 二、使用:2.1 mysql 打印执行的sql 设置&#xff1a;2.2 分页查询&#xff1a;2.3 条件构造器&#xff1a;2.3.1 QueryWrapper 查询&#xff1a;2.3.2 Upd…

【Android Studio调试报错】setContentView(R.layout.activity_main);

报错如下&#xff1a; 解决方法&#xff1a; 1、把参数删除到只剩 .&#xff0c;用自动补齐的方式来查看当前文件的位置是不是&#xff0c;当前左侧工程中layout 所在的位置。在的话它会在自动补齐列表有选项。否则我们选中第一个。 2、选中之后是这样的 然后问题解决&#xf…

杜卡迪Panigale V4 SP2 916限量版,共计500台,这名字真长....

既然是916限量款就不得不提杜卡迪916了&#xff0c;这台车被誉为最美杜卡迪&#xff0c;杜卡迪的仿赛很多设计都能从这台916上找到&#xff0c;这台车是1994年发布&#xff0c;截止目前23年&#xff0c;而V4 SP2 916限量款明年正式发售&#xff0c;所以也可以称为30周年916纪念…

详解[ZJCTF 2019]NiZhuanSiWei 1(PHP两种伪协议、PHP反序列化漏洞、PHP强比较)还有那道题有这么经典?

题目环境&#xff1a; <?php $text $_GET["text"]; $file $_GET["file"]; $password $_GET["password"]; if(isset($text)&&(file_get_contents($text,r)"welcome to the zjctf")){echo "<br><h1>&…

笔记51:循环神经网络入门

本地笔记地址&#xff1a;D:\work_file\DeepLearning_Learning\03_个人笔记\3.循环神经网络\循环神经网络 a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a

视觉分词器统一图文信息,快手提出基座模型 LaVIT 刷榜多模态任务

你是否想过&#xff0c;有朝一日能够仅输入寥寥数语或图片&#xff0c;就可以一键检索最为匹配的短视频内容。不是凭借视频标签、也不是依靠标题字幕&#xff0c;而是大模型真正理解了视频内容。近期&#xff0c;来自快手的新研究利用视觉分词器统一图文信息&#xff0c;LaVIT …

Project Office X Pro 是一款功能齐全的项目管理应用程序

Project Office X Pro是一款适用于Mac的专业项目管理软件。它提供了全面的项目管理工具和功能&#xff0c;帮助用户有效地规划、执行和监控项目。 特征&#xff1a; 甘特图让您一目了然地监控您的整个计划。每项任务都按日、周、月或年以图形方式显示在可视时间线上。可视化视…

(五)七种元启发算法(DBO、LO、SWO、COA、LSO、KOA、GRO)求解无人机路径规划MATLAB

一、七种算法&#xff08;DBO、LO、SWO、COA、LSO、KOA、GRO&#xff09;简介 1、蜣螂优化算法DBO 蜣螂优化算法&#xff08;Dung beetle optimizer&#xff0c;DBO&#xff09;由Jiankai Xue和Bo Shen于2022年提出&#xff0c;该算法主要受蜣螂的滚球、跳舞、觅食、偷窃和繁…

安装virt-manger虚拟机管理器

环境&#xff1a; redhat7:192.168.1.130 安装步骤&#xff1a; 安装qemu-kvm yum install -y qemu-kvm安装libvirt yum install -y libvirt重启libvirt systemctl restart libvirtd查看libvirt的版本信息 virsh version安装virt-manager yum install -y virt-manager检验…

第06章 面向对象编程(基础)

一 面向对象编程概述 1.1 程序设计的思路 面向对象&#xff0c;是软件开发中的一类编程风格、开发范式。除了面向对象&#xff0c;还有面向过程、指令式编程和函数式编程。在所有的编程范式中&#xff0c;我们接触最多的还是面向过程和面向对象两种。 类比&#xff1a;史书类…

阶段七-Day02-SpringMVC

一、Restful请求格式 1. 介绍 Rest(Representational State Transfer&#xff1a;表现层状态转移)是一种软件架构风格&#xff0c;其核心是面向资源的一种设计。何为面向资源&#xff0c;意思是网络上的所有事物都可以抽象为资源&#xff0c;而每个资源都有唯一的资源标识&…

【数学建模】(1)层次分析法(AHP)

一.层次分析法的定义 层次分析法&#xff0c;简称AHP&#xff0c;是指将与决策总是有关的元素分解成目标、准则、方案等层次&#xff0c;在此基础之上进行定性和定量分析的决策方法&#xff0c;是一种层次权重决策分析方法。 层次分析法是一种主观赋值评价方法…

淘宝/京东/拼多多三方接口调用设计方案

在为第三方系统提供接口的时候&#xff0c;肯定要考虑接口数据的安全问题&#xff0c;比如数据是否被篡改&#xff0c;数据是否已经过时&#xff0c;数据是否可以重复提交等问题 在设计三方接口调用的方案时&#xff0c;需要考虑到安全性和可用性。以下是一种设计方案的概述&a…

盒子模型-详解

一、盒子模型组成 所谓盒子模型&#xff1a;就是把HTML页面中的布局元素看作是一个矩形的盒子也就是一个盛装内容的容器。css盒子模型本质是一个盒子&#xff0c;封装周围的HTML元素&#xff0c;包括边框、外边距、内边距和实际内容。 margin:外边距 用于控制盒子与盒子之间的…

【ROS导航Navigation】一 | 概述

目录 致谢&#xff1a;ROS赵虚左老师 一、【概述】二狗子找大水法 Navigation全图 二、【SLAM】即时定位与地图构建 三、【AMCL】自适应蒙特卡洛定位 四、【Move_base】路径规划 五、【cmd_vel】运动控制 六、环境感知 致谢&#xff1a;ROS赵虚左老师 Introduction A…