ssti模板注入

一、Flask应用

1、介绍

  • 定义
Flask:是一个使用Python编写的轻量级web应用框架。Flask基于Werkzeug WSGI工具包和Jinja2模板引擎。
  • 特点

良好的文档、丰富的插件、包含开发服务器和调试器、集成支持单元测试、RESTful请求调度、支持安全cookies、基于Unicode。

  • 用处

Python可以直接用flask启动一个web服务页面。

2、flask基本框架

(在python的venv虚拟环境运行)

from flask import Flask    #启动flask模块,创建一个Flask类
app = Flask(__name__)    #__name__系统变量,指的是py文件的文件名(相当于反序列化中的魔术方法)@app.route('/')    #路由,相当与路径
def lin1():return "sb"if __name__=='__main__':    #只能被python直接运行,不能作为组件或模块被调用app.run()

运行

运行后发现需要去浏览器查看(由于是127.0.0.1所以只能在虚拟机上的浏览器查看,没法在主机查看)

 要在本机上运行,需要改变运行的host

from flask import Flask    #启动flask模块,创建一个Flask类
app = Flask(__name__)@app.route('/lin1')    #将路径指向lin1
def lin1():return "sb"
@app.route('/lin2')
def lin2():return "2b"if __name__=='__main__':app.run(debug=True,host="172.16.17.29",port=6000)#debug=True:改完文件的配置可以自动生效(建议只在学习中开启,实战有漏洞,导致命令执行)#host="172.16.17.29",port=6666:将网址改为172.16.17.29端口改为80使得能在本机上运行

运行

 可以看到访问的地址改变了,且debug已启动(PIN码为562-864-305)

访问lin1

访问lin2

 3、flask变量规则

构建动态url

from flask import Flask   
app = Flask(__name__)@app.route('/lin1/<name>')    
def lin1(name):    #传入字符型参数namereturn "sb %s" % name@app.route('/lin2/<int:yourid>')
def lin2(yourid):    #传入整数型参数youridreturn "id %d" % yourid@app.route('/lin2/<int:yourmoneny>')
def lin2(yourmoneny):    #传入浮点型参数yourmonenyreturn "id %.2f" % yourmoneny if __name__=='__main__':app.run(debug=True,host="172.16.17.29",port=6000)

效果:

 

4、flask的http方法

扩展:

方法用法
POST用于向指定资源提交数据进行处理请求,例如提交表单或上传文件。数据被包含在请求体中,可能导致新的资源建立或原有资源修改。
GET请求指定的页面信息,并返回实体内容。
HEAD类似于GET,只不过返回的响应中没有具体的内容,仅传输状态行和标题部分,用于获取报头信息。
PUT从客户端向服务器传送的数据取代指定的内容,即向指定的位置上传最新的内容。
DELETE

请求服务器删除Request-URL所标识的资源。

简单的登入界面

新创建一个templates文件夹,在里面放入一个html文件

<html><body><form action = "http://172.16.17.29:6000/login" method = "post"><p>Your Name</p><p><input type = "text" name = "name"></p><p><input type = "submit" value = "submit"></p></form></body>
</html>

开始构造flask框架

from flask import Flask,request,redirect,url_for,render_template
import requests
app = Flask(__name__)@app.route('/')    #登录页面(‘/’)
def index():return render_template("index.html")    
#render_template:根据传入的参数和变量,替换模板文件中的占位符,并返回最终的 HTML 内容给客户端。@app.route('/user/<name>')    #用户页面(‘/user/’)
def user(name):return "hello %s" % name@app.route('/login',methods = ['GET','POST'])    #可以用POST方法也可以用GET方法
def login():if request.method == 'POST':user = request.form['name']    #request.form['name']:获取表单数据return redirect(url_for('user',name = user))    #redirect:重定向到/user/<name>else:user = request.args.get('name','')return redirect(url_for('user',name = user))if __name__ == '__main__':app.run(debug=True,host="172.16.17.29",port = 6000)

运行

POST

GET

结果

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

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

相关文章

手机短信删除怎么恢复?快速找回的3个秘密武器

手机&#xff0c;这个我们每天离不开的小玩意儿&#xff0c;有时候也会让我们头疼不已。比如&#xff0c;你一不小心&#xff0c;或者为了清理点空间&#xff0c;就把那些重要的短信给删了。这些短信可能是你和好友的深夜聊天&#xff0c;或者是重要的工作信息。一旦删除&#…

哪款开放式耳机佩戴最舒服?2024五款备受推崇产品分享!

​在现今耳机市场&#xff0c;开放式耳机凭借其舒适的佩戴体验和独特的不入耳设计&#xff0c;备受消费者追捧。它们不仅让你在享受音乐时&#xff0c;仍能察觉周围的声音&#xff0c;确保与人交流无障碍&#xff0c;而且有利于耳朵的卫生与健康。对于运动爱好者和耳机发烧友而…

GIGE 协议摘录 —— 引导寄存器(四)

系列文章目录 GIGE 学习笔记 GIGE 协议摘录 —— 设备发现&#xff08;一&#xff09; GIGE 协议摘录 —— GVCP 协议&#xff08;二&#xff09; GIGE 协议摘录 —— GVSP 协议&#xff08;三&#xff09; GIGE 协议摘录 —— 引导寄存器&#xff08;四&#xff09; GIGE 协议…

前后端实现文件上传进度条-实时进度

后端接口代码&#xff1a; PostMapping("/upload")public ResponseEntity<String> handleFileUpload(RequestParam("file") MultipartFile file) {try {// 获取文件名String fileName file.getOriginalFilename();// 创建上传目标路径Path targetPa…

基于简单Agent对医疗数据进行分析

数据表 供应商资格审核规定.pdf 医生名录.xlsx 历史就诊记录.xlsx 患者信息名录.xlsx 药品.xlsx 药品库存管理.xlsx 采购单位基本信息.xlsx Agent测试 模型基于ChatGPT-3.5 问题&#xff1a;帮我找出不达标的供应商 Agent分析过程 [Thought: 0] Key Concepts: - 不达标的供…

嵌入式Linux系统中RTC应用的操作详解

第一:RTC的作用以及时间简介 “RTC”的英文全称是Reul-Time Clock,翻译过来是实时时钟芯片.实时时钟芯片是日常生活中应用最为广泛的电子器件之一,它为人们或者电子系统提供精确的实时时间,实时时钟芯片通过引脚对外提供时间读写接口,通常内部带有电池,保证在外部系统关…

【Android】使用EventBus进行线程间通讯

EventBus 简介 EventBus&#xff1a;github EventBus是Android和Java的发布/订阅事件总线。 简化组件之间的通信 解耦事件发送者和接收者 在 Activities, Fragments, background threads中表现良好 避免复杂且容易出错的依赖关系和生命周期问题 Publisher使用post发出…

好书推荐-人工智能数学基础

本书以零基础讲解为宗旨&#xff0c;面向学习数据科学与人工智能的读者&#xff0c;通俗地讲解每一个知识点&#xff0c;旨在帮助读者快速打下数学基础。    全书分为 4 篇&#xff0c;共 17 章。其中第 1 篇为数学知识基础篇&#xff0c;主要讲述了高等数学基础、微积分、泰…

Open vSwitch 数据包处理流程

一、Open vSwitch 数据包转发模式 Open vSwitch 根据不同的模块使用&#xff0c;主要分为两种数据包的转发模式&#xff1a;Datapath 模式和 DPDK 模式&#xff0c;这两种模式的主要区别在于&#xff1a; Datapath 模式&#xff1a; 使用内核空间的网络栈进行数据包的转发性能相…

UML实现图-部署图

概述 部署图(Deployent Diagram)描述了运行软件的系统中硬件和软件的物理结构。部署图中通常包含两种元素:节点和关联关系&#xff0c;部署图中每个配置必须存在于某些节点上。部署图也可以包含包或子系统。 节点是在运行时代表计算机资源的物理元素。节点名称有两种:简单名和…

苍穹外卖笔记-08-套餐管理-增加,删除,修改,查询和起售停售套餐

套餐管理 1 任务2 新增套餐2.1 需求分析和设计接口设计setmeal和setmeal_dish表设计 2.2 代码开发2.2.1 根据分类id查询菜品DishControllerDishServiceDishServiceImplDishMapperDishMapper.xml 2.2.2 新增套餐接口SetmealControllerSetmealServiceSetmealServiceImplSetmealMa…

Nginx03-动态资源和LNMP介绍与实验、自动索引模块、基础认证模块、状态模块

目录 写在前面Nginx03案例1 模拟视频下载网站自动索引autoindex基础认证auth_basic模块状态stub_status模块模块小结 案例2 动态网站&#xff08;部署php代码&#xff09;概述常见的动态网站的架构LNMP架构流程数据库Mariadb安装安全配置基本操作 PHP安装php修改配置文件 Nginx…

AI做的2024年高考数学试卷,答案对吗?

2024年高考数学考试已经结束&#xff0c;现在呈上数学真题及AI给出的解答。供各位看官欣赏。 总的来说&#xff0c;人工做题两小时&#xff0c;AI解答两分钟。 但是&#xff0c;AI做的答案是否正确&#xff0c;那就要各位看官来评判了&#xff01; 注&#xff1a;试卷来源于…

2024年5大制作AI电子手册工具推荐

AI电子手册作为一种结合了人工智能技术和传统电子手册功能的新型工具&#xff0c;逐渐成为了企业进行知识管理和信息传递的重要工具&#xff0c;为企业提高效率、优化用户体验。在本文中&#xff0c;LookLook同学将简单介绍一下什么是AI电子手册、对企业有什么好处&#xff0c;…

电源变压器的作用和性能

电源变压器的主要作用是改变输入电压的大小&#xff0c;通常用于降低电压或升高电压&#xff0c;以便适应不同设备的需求。它们还可以提供隔离&#xff0c;使得输出电路与输入电路之间电气隔离&#xff0c;从而提高安全性。性能方面&#xff0c;电源变压器需要具有高效率、低温…

Unity3D测量距离实现方法(一)

系列文章目录 unity工具 文章目录 系列文章目录&#x1f449;前言&#x1f449;一、Unity距离测量1-1 制作预制体1-2 编写测量的脚本 &#x1f449;二、鼠标点击模型进行测量&#x1f449;二、字体面向摄像机的方法&#x1f449;二、最短距离测量方法&#x1f449;三、壁纸分享…

Java版工程项目管理平台:以源码驱动,引领工程企业数字化转型

在当今数字化时代&#xff0c;随着企业的扩张和业务的增长&#xff0c;传统的工程项目管理方法已显不足。为了提升管理效率、减轻工作负担、增强信息处理的快速性和精确度&#xff0c;工程企业亟需借助数字化技术进行转型升级。本文将向您展示一款基于Spring Cloud、Spring Boo…

AI大模型日报#0607:10家国产大模型、GPT-4o挑战高考作文 | OpenAI公开破解GPT-4新方法

导读&#xff1a;AI大模型日报&#xff0c;爬虫LLM自动生成&#xff0c;一文览尽每日AI大模型要点资讯&#xff01;目前采用“文心一言”&#xff08;ERNIE 4.0&#xff09;、“零一万物”&#xff08;Yi-Large&#xff09;生成了今日要点以及每条资讯的摘要。欢迎阅读&#xf…

超过20W个高质量组件的开源PCB库

项目介绍 Celestial Altium Library是由Altium行业专家Mark Harris创建的一个庞大的免费开源数据库库&#xff0c;专为Altium Designer而设计&#xff0c;库中包含超过20万个优质组件 . 特点 高质量数据&#xff1a;Celestial Altium Library注重数据的质量&#xff0c;用户可…

Day14:响应式网页

通过媒体查询、Bootstrap 框架完成腾讯全端网页响应式布局。 一、响应式布局方案 1、什么是响应式布局 它的主要特点是能够使网页根据不同的设备屏幕尺寸&#xff08;如桌面电脑、平板电脑、手机等&#xff09;和分辨率自动调整布局和显示效果&#xff0c;以提供最佳的用户体…