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

Python第三方库 - Flask(python web框架)

1 Flask

1.1 认识Flask

Web Application FrameworkWeb 应用程序框架)或简单的 Web FrameworkWeb 框架)表示一个库和模块的集合,使 Web 应用程序开发人员能够编写应用程序,而不必担心协议,线程管理等低级细节。

1.2 Pycharm安装与简单测试

1.2.1 安装

Pycharm 安装 Flask 框架
FileSettingsProject: [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&#xff08; Web 应用程序框架&#xff09;或简单的 Web Framework&#xff08; Web 框架&#xff09;表示一个库和模块的集合&#xff0c;使 Web 应用程序开发人员能够编写应用程序&#xff0c;而不必担心协议&#xff0c;线…...

c# sqlite 修改字段类型

因为sqlite不支持直接修改字段类型&#xff0c; 所以只能创建新的表&#xff0c;再将原始数据复制过去。具体操作步骤如下&#xff1a; 第一步&#xff0c; 将表“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等级考试&#xff08;1~8级&#xff09;全部真题・点这里 第1题&#xff1a;找和为K的两个元素 在一个长度为n(n < 1000)的整数序列中&#xff0c;判断是否存在某两个元素之和为k。 输入 第一行输入序列的长度n和k&#xff0c;用空格分开。 第二行输入序列中的n个整数&am…...

【2023_10_21_计算机热点知识分享】:机器学习中的神经网络

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

app开发者提升第四季度广告收入的方法

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

#电子电器架构 —— 车载网关初入门

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

系统工程利用计算机作为工具

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

MathType7.4绿色和谐版数学公式编辑器

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

JAVA代码审计-纵向越权漏洞分析

查看这个cms系统后台管理员 添加用户的页面 点击添加管理员 这个模块只有管理员拥有&#xff0c;普通用户没有这个模块。 打开源码分析是否存在越权漏洞。 ------------------------------------------------------------------------------------------------------------ …...

【PG】PostgreSQL逻辑备份(pg_dump)

目录 命令格式 连接选项 参数选项 使用举例 pg_dump是用于备份一种PostgreSQL数据库的工具。即使数据库正在被并发使用&#xff0c;它也能创建一致的备份。pg_dump不阻塞其他用户访问数据库&#xff08;读取或写入&#xff09;。 pg_dump只备份单个数据库。要备份一个集簇…...

JVM、JRE、JDK

JVM JVM&#xff08;Java Virtual Machine&#xff09;是Java虚拟机的缩写&#xff0c;他是Java编程语言运行时环境&#xff0c;负责执行Java字节码。另外作为JVM虚拟机&#xff0c;它在各种操作系统上提供统一的平台&#xff0c;这帮助Java应用程序可以独立于操作系统底层运行…...

Latex 插入矢量图

引用宏包 \usepackage{svg} \begin{figure}[h] \includesvg{filename} \end{figure} 如果插入的 svg 图片文字超出了图形&#xff0c;使用&#xff1a; \usepackage[inkscapelatexfalse]{svg}...

git:删除上一次 commit 中的某个文件,并重新提交

1. 首先&#xff0c;使用以下命令删除要移除的文件&#xff1a; git rm 文件路径将 “文件路径” 替换为要删除的文件的实际路径。这将从 Git 仓库中删除该文件&#xff0c;并将其放入暂存区。git rm 相当于 linux rm git add 命令。 2. 使用以下命令修改上一次的提交&#…...

proxy解决跨域问题

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

Ubuntu源码编译samba

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

conda虚拟环境配置

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

如何制作自己的数字人

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

JAVA毕业设计103—基于Java+Springboot+vue的药店管理系统(源码+数据库)

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

LeRobot数据采集全流程解析:从环境配置到动作回放(SO-100实战)

LeRobot数据采集全流程实战&#xff1a;从环境搭建到动作复现的SO-100深度指南 当我们需要让机器人学会新技能时&#xff0c;数据采集是构建智能系统的第一步。LeRobot作为Hugging Face推出的机器人学习平台&#xff0c;通过标准化流程降低了开发门槛。本文将带你完整走通SO-10…...

多图拼长条与宫格拼接批处理备忘

手头有一批产品白底图&#xff0c;需要批量产出两类物料&#xff1a;一类是横向四连图做详情对比&#xff0c;一类是 22 宫格做缩略封面。统一用【批量图片拼接工具】走完&#xff0c;下面只记参数组合和踩坑点&#xff0c;不写实现细节。输入侧是「主文件夹」路径&#xff0c;…...

VisualCppRedist AIO:一个文件解决Windows运行库的十年难题

VisualCppRedist AIO&#xff1a;一个文件解决Windows运行库的十年难题 【免费下载链接】vcredist AIO Repack for latest Microsoft Visual C Redistributable Runtimes 项目地址: https://gitcode.com/gh_mirrors/vc/vcredist 你是否曾在打开心爱的游戏或专业软件时&a…...

第6章 数据类型转换-6.1 转换为整数

通过使用int()函数可以将仅含有数字的字符串或浮点数转换为十进制整数。其语法格式如下&#xff1a;int([x [, base]])其中&#xff0c;参数x为可选参数&#xff0c;表示仅含有数字的字符串或浮点数&#xff0c;如果省略该参数&#xff0c;则该函数返回0&#xff1b;参数base为…...

旺季仓容紧张跨境卖家如何提前规划备货与入仓

决胜销售旺季&#xff1a;跨境卖家的备货与入仓战略指南随着全球电商购物节日益临近&#xff0c;无论是年末的“黑色星期五”、圣诞季&#xff0c;还是区域性的大促活动&#xff0c;一个共同的挑战悄然浮现&#xff1a;仓库容量告急。对于跨境卖家而言&#xff0c;旺季不仅是销…...

别再折腾LangChain了!用Ollama + DeepSeek R1在WSL2上5分钟搞定本地知识库问答

5分钟极简方案&#xff1a;用OllamaDeepSeek R1在WSL2搭建高效本地知识库 当开发者首次接触本地知识库系统时&#xff0c;往往会被LangChain等框架的复杂性劝退。本文将介绍一种绕过传统复杂流程的极简方案&#xff0c;只需5分钟即可在Windows 11的WSL2环境中搭建可用的问答系统…...

如何在5分钟内构建你的专业在线演示文稿:PPTist完全指南

如何在5分钟内构建你的专业在线演示文稿&#xff1a;PPTist完全指南 【免费下载链接】PPTist PowerPoint-ist&#xff08;/pauəpɔintist/&#xff09;, An online presentation application that replicates most of the commonly used features of MS PowerPoint, allowing …...

DETR训练避坑大全:Windows10+PyCharm环境下的5个常见报错解决方案

DETR实战指南&#xff1a;Windows 10环境下的5大典型问题深度解析与解决方案 在目标检测领域&#xff0c;DETR&#xff08;Detection Transformer&#xff09;作为首个完全基于Transformer架构的端到端检测系统&#xff0c;正在改变传统计算机视觉任务的实现方式。不同于Faste…...

挑战复杂功能,让快马AI成为你微信小程序开发的智能编程搭档

最近在开发一个微信小程序时&#xff0c;遇到了一个比较复杂的自定义组件需求&#xff1a;一个可以左右滑动切换日期、并显示对应日程的周视图日历。这个功能看似简单&#xff0c;但实际开发中涉及到日期计算、滑动事件处理、数据绑定等多个难点。好在发现了InsCode(快马)平台&…...

提升 10 倍的学习效率,这款浏览器必装的AI插件为什么火了?

花了3 周时间写了一个浏览器插件&#xff0c;一个月陆陆续续下载量破 1000 啦 安装链接 为什么要做这个项目&#xff1f; 一开始我入门学习 langchain 大模型agent开发&#xff0c;在之前我不懂的问题需要在 google 上搜索非常多的资料 融会贯通以后才能得到答案&#xff0…...