Python第三方库 - Flask(python web框架)
1 Flask
1.1 认识Flask
Web Application Framework
(Web
应用程序框架)或简单的Web Framework
(Web
框架)表示一个库和模块的集合,使Web
应用程序开发人员能够编写应用程序,而不必担心协议,线程管理等低级细节。
1.2 Pycharm安装与简单测试
1.2.1 安装
Pycharm
安装Flask
框架
File
→Settings
→Project: [project name]
→Project Interpreter
1.2.2 简单测试
运行下面代码,打开http://127.0.0.1:5000
的链接
from flask import Flask
# __name__:代表当前模块,app为类的实例
app = Flask(__name__)# 创建一个路由和视图函数的映射
@app.route('/')
def hello_world():return 'Hello World'if __name__ == '__main__':app.run()#app.run(host='0.0.0.0', port=5000)
1.2.3 Debug模式(热更新)
Debug模式从控制台可以看见
Pycharm专业版开启方法:
右上角的项目名称 →
Edit Configurations
→ 勾选FLASK_DEBUG
选项 → 重启项目
Pycharm社区版开启方法:
# 开启Debug模式 运行时传递参数
app.run(debug=True)
1.2.4 社区版Pycharm建立Flask Project
文件夹 | 作用 |
---|---|
static | 存放静态文件 |
templates | 存放模板文件 |
2 Flask模块的语法与使用
2.1 Flask路由与路由参数
2.1.1 路由
Flask中的route()装饰器用于将URL绑定到函数,下面代码运行在http://127.0.0.1:5000/hello
@app.route('/hello')
def hello_world():return 'hello world'
application对象的add_url_rule()函数也可用于将URL与函数绑定
from flask import Flask
app = Flask(__name__)def hello_world():return 'hello world'app.add_url_rule('/', 'hello', hello_world)
app.run()
2.1.2 路由参数(动态构建UrL)
通过向规则参数添加变量部分,可以动态构建
URL
。
此变量部分标记为<variable-name>
。
它作为关键字参数传递给与规则相关联的函数。
from flask import Flask
app = Flask(__name__)@app.route('/hello/<name>')
def hello_name(name):return 'Hello %s!' % name@app.route('/blog/<int:postID>')
def show_blog(postID):return 'Blog Number %d' % postID@app.route('/rev/<float:revNo>')
def revision(revNo):return 'Revision Number %f' % revNoif __name__ == '__main__':app.run(debug = True)
2.1.3 URL构建
url_for()
函数用于动态构建特定函数的URL
语法
url_for(函数名,关键字参数)举例:
from flask import Flask, redirect, url_for
app = Flask(__name__)
@app.route('/world')
def hello_world():return 'Hello world!!!'@app.route('/test/<str>')
def hello_test(str):return '%s !!!' % str@app.route('/other/<oth>')
def hello_other(oth):if oth =='world':return redirect(url_for('hello_world'))else:return redirect(url_for('hello_test', str= '随便拉'))if __name__ == '__main__':app.run(debug = True)代码解析:
在postman输入http://127.0.0.1:5000/other/world网址,如果查接收的参数与world匹配,则重定向hello_world()函数
否则:
重定向到hello_test()函数
2.2 Flask与web交互
2.2.1 Flask和表单
html代码<style>form{margin:300px auto;display:block;}
</style>
<body><form action="http://localhost:5000/test" method="post" style="width:300px;height:30px"><div class=""><label for="exampleFormControlTextarea1" class="form-label">Example textarea</label><textarea class="form-control" id="exampleFormControlTextarea1" rows="3" name="txt"></textarea></div><input class="btn btn-primary" type="submit" value="Submit"></form>
</body>py代码from flask import Flask, redirect, url_for, request, render_templateapp = Flask(__name__)@app.route('/page')
def index():return render_template("1.html")@app.route('/success/<name>')
def success(name):return 'welcome %s' % name@app.route('/test',methods = ['POST', 'GET'])
def test():if request.method == 'POST':txt = request.form['txt']print(txt)return redirect(url_for('success', name=txt))else:return redirect(url_for('index'))if __name__ == '__main__':app.run(debug=True)
2.2.2 Flask模板
render_template
方法渲染的模板需要在 templates
文件夹下
hello.html<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body>
我的模板html内容<br />{{ my_str }}<br />{{ my_int }}<br />{{ my_array }}
</body>
</html>test.pyfrom flask import Flask, redirect, url_for, request, render_templateapp = Flask(__name__)@app.route('/')
def index():# 往模板中传入的数据my_str = 'Hello Word'my_int = 10my_array = [3, 4, 2, 1, 7, 9]return render_template('hello.html',my_str = my_str,my_int = my_int,my_array = my_array)if __name__ == '__main__':app.run(debug=True)
3 参考文档
[1] W3CSchool教程
[2] 社区版Pycharm自建Flask项目
相关文章:

Python第三方库 - Flask(python web框架)
1 Flask 1.1 认识Flask Web Application Framework( Web 应用程序框架)或简单的 Web Framework( Web 框架)表示一个库和模块的集合,使 Web 应用程序开发人员能够编写应用程序,而不必担心协议,线…...
c# sqlite 修改字段类型
因为sqlite不支持直接修改字段类型, 所以只能创建新的表,再将原始数据复制过去。具体操作步骤如下: 第一步, 将表“tableName”的名称修改为 “oldTable” string queryString string.Format("ALTER TABLE {0} RENAME TO …...
[Pytorch] 保存模型与加载模型
1、保存模型 # 定义模型 model BPNetModel(n_featuren_feature,n_hiddenn_hidden,n_outputn_output) #调用网络# 保存模型 torch.save(model, BPNetModel0.pth) 2、加载模型 import torch## 读取模型 model torch.load(BPNetModel0.pth) 3、保存模型参数 #调用网络 mode…...
AES解密报错,Input length must be multiple of 16 when decrypting with padded cipher
# 项目场景:对登录用户名、密码前端加密,后端解密失败 --- # 问题描述 在做login登录页面的用户名和密码加密时,前端加密后端解密,但是抛出`报错:Input length must be multiple of 16 when decrypting with padded cipher`,仔细检查过偏移向量,没有问题,但还是不行,…...

电子学会C/C++编程等级考试2023年05月(三级)真题解析
C/C等级考试(1~8级)全部真题・点这里 第1题:找和为K的两个元素 在一个长度为n(n < 1000)的整数序列中,判断是否存在某两个元素之和为k。 输入 第一行输入序列的长度n和k,用空格分开。 第二行输入序列中的n个整数&am…...

【2023_10_21_计算机热点知识分享】:机器学习中的神经网络
今天的分享主题是机器学习中的神经网络。神经网络是一种模拟人类神经系统的计算模型,它由一系列的神经元组成,每个神经元接收一组输入,经过计算后产生一个输出。神经网络的学习过程是通过调整神经元之间的连接权重来实现的,这个过…...

app开发者提升第四季度广告收入的方法
第四季度将迎来双十一、双十二、圣诞、元旦为主的电商购物季,这是一年中利用线上消费为全新年度和全新预算做好准备的最佳时机,从过往的变现成功案例中汇总了优化要点,帮助开发者在第四季度和未来一年获取更多广告收益。 https://www.shensh…...

#电子电器架构 —— 车载网关初入门
我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 PS:小细节,本文字数7000+,详细描述了网关在车载框架中的具体性能设置。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 没有人关注你。也无需有人关注你。你必须承认自己的价值,你不能站在他…...

系统工程利用计算机作为工具
系统工程利用计算机作为工具,对系统的结构、元素、(18)和反馈等进行分析,以达到最优(19)、最优设计、最优管理和最优控制的目的。霍尔(A.D.Hall)于1969年提出了系统方法的三维结构体…...

MathType7.4绿色和谐版数学公式编辑器
MathType 是一个功能强大、所见即所得的数学公式编辑器,可以在 Word、PowerPoint 等办公软件中轻松输入各种复杂的物理公式、化学方程式和符号。由 MathType 创建的公式能与 Office 文档完美结合,显示效果很好;MathType 可在任何支持 OLE 对象…...

JAVA代码审计-纵向越权漏洞分析
查看这个cms系统后台管理员 添加用户的页面 点击添加管理员 这个模块只有管理员拥有,普通用户没有这个模块。 打开源码分析是否存在越权漏洞。 ------------------------------------------------------------------------------------------------------------ …...
【PG】PostgreSQL逻辑备份(pg_dump)
目录 命令格式 连接选项 参数选项 使用举例 pg_dump是用于备份一种PostgreSQL数据库的工具。即使数据库正在被并发使用,它也能创建一致的备份。pg_dump不阻塞其他用户访问数据库(读取或写入)。 pg_dump只备份单个数据库。要备份一个集簇…...

JVM、JRE、JDK
JVM JVM(Java Virtual Machine)是Java虚拟机的缩写,他是Java编程语言运行时环境,负责执行Java字节码。另外作为JVM虚拟机,它在各种操作系统上提供统一的平台,这帮助Java应用程序可以独立于操作系统底层运行…...
Latex 插入矢量图
引用宏包 \usepackage{svg} \begin{figure}[h] \includesvg{filename} \end{figure} 如果插入的 svg 图片文字超出了图形,使用: \usepackage[inkscapelatexfalse]{svg}...
git:删除上一次 commit 中的某个文件,并重新提交
1. 首先,使用以下命令删除要移除的文件: git rm 文件路径将 “文件路径” 替换为要删除的文件的实际路径。这将从 Git 仓库中删除该文件,并将其放入暂存区。git rm 相当于 linux rm git add 命令。 2. 使用以下命令修改上一次的提交&#…...

proxy解决跨域问题
在使用vite工具创建的项目中解决跨域问题: 在vue.config.js中配置如下代码: const { defineConfig } require(‘vue/cli-service’) module.exports defineConfig({ transpileDependencies: true, server:{ proxy:{ ‘/path’:{ target:‘https://i.…...

Ubuntu源码编译samba
概述 本人最近研究samba的源码,但是在源码编译的时候,本以为直接config,make,make install。没想到编译过程中碰到很多麻烦,主要是各种依赖问题。 基于此,本文把samba编译的详细过程记录下来,以供再次研究借鉴。 软件…...

conda虚拟环境配置
命令行输入,conda -V 确定conda版本 创建自己的conda虚拟环境 activate 回车 conda create -n 名字 python版本号 执行命令 确认执行命令 输入y 创建完成 激活环境 conda activate 名字 进入python环境 python 退出 exit() conda deactive...

如何制作自己的数字人
如何制作自己的数字人呢?不用担心平台的使用授权,也不用担心哪一天自己自媒体被号被无故封杀,那么SadTalker将是你的首选,他是完全开源的数字人软件,现已达到Apache2的授权,完全自由的开源软件。作者自己试…...

JAVA毕业设计103—基于Java+Springboot+vue的药店管理系统(源码+数据库)
基于JavaSpringbootvue的药店管理系统(源码数据库) 一、系统介绍 本系统前后端分离 -功能: 登录、药库药品管理、统计查询、药房管理、物资管理、挂号管理、账号管理、角色管理、权限管理、登录日志管理、药品管理、药品类型管理、客人类型管理 二、所用技术 后端技术栈&a…...

测试微信模版消息推送
进入“开发接口管理”--“公众平台测试账号”,无需申请公众账号、可在测试账号中体验并测试微信公众平台所有高级接口。 获取access_token: 自定义模版消息: 关注测试号:扫二维码关注测试号。 发送模版消息: import requests da…...
IGP(Interior Gateway Protocol,内部网关协议)
IGP(Interior Gateway Protocol,内部网关协议) 是一种用于在一个自治系统(AS)内部传递路由信息的路由协议,主要用于在一个组织或机构的内部网络中决定数据包的最佳路径。与用于自治系统之间通信的 EGP&…...
鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个医院挂号小程序
一、开发准备 环境搭建: 安装DevEco Studio 3.0或更高版本配置HarmonyOS SDK申请开发者账号 项目创建: File > New > Create Project > Application (选择"Empty Ability") 二、核心功能实现 1. 医院科室展示 /…...
Pinocchio 库详解及其在足式机器人上的应用
Pinocchio 库详解及其在足式机器人上的应用 Pinocchio (Pinocchio is not only a nose) 是一个开源的 C 库,专门用于快速计算机器人模型的正向运动学、逆向运动学、雅可比矩阵、动力学和动力学导数。它主要关注效率和准确性,并提供了一个通用的框架&…...

Docker 本地安装 mysql 数据库
Docker: Accelerated Container Application Development 下载对应操作系统版本的 docker ;并安装。 基础操作不再赘述。 打开 macOS 终端,开始 docker 安装mysql之旅 第一步 docker search mysql 》〉docker search mysql NAME DE…...

PHP 8.5 即将发布:管道操作符、强力调试
前不久,PHP宣布了即将在 2025 年 11 月 20 日 正式发布的 PHP 8.5!作为 PHP 语言的又一次重要迭代,PHP 8.5 承诺带来一系列旨在提升代码可读性、健壮性以及开发者效率的改进。而更令人兴奋的是,借助强大的本地开发环境 ServBay&am…...

论文阅读笔记——Muffin: Testing Deep Learning Libraries via Neural Architecture Fuzzing
Muffin 论文 现有方法 CRADLE 和 LEMON,依赖模型推理阶段输出进行差分测试,但在训练阶段是不可行的,因为训练阶段直到最后才有固定输出,中间过程是不断变化的。API 库覆盖低,因为各个 API 都是在各种具体场景下使用。…...

Xela矩阵三轴触觉传感器的工作原理解析与应用场景
Xela矩阵三轴触觉传感器通过先进技术模拟人类触觉感知,帮助设备实现精确的力测量与位移监测。其核心功能基于磁性三维力测量与空间位移测量,能够捕捉多维触觉信息。该传感器的设计不仅提升了触觉感知的精度,还为机器人、医疗设备和制造业的智…...
TCP/IP 网络编程 | 服务端 客户端的封装
设计模式 文章目录 设计模式一、socket.h 接口(interface)二、socket.cpp 实现(implementation)三、server.cpp 使用封装(main 函数)四、client.cpp 使用封装(main 函数)五、退出方法…...

Java后端检查空条件查询
通过抛出运行异常:throw new RuntimeException("请输入查询条件!");BranchWarehouseServiceImpl.java // 查询试剂交易(入库/出库)记录Overridepublic List<BranchWarehouseTransactions> queryForReagent(Branch…...