flask中url_for的坑

这篇具有很好参考价值的文章主要介绍了flask中url_for的坑。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

模板文件中的page_not_found.html:

404 错误,<a href="{{ url_for('hello')}}">点击跳转到首页</a>

其中用到了hello函数

如果app.py中是这样写的:

@app.route("/<name>")
def hello(name=None):
    # name = '<script>alert("bad")</script>'
    if name:
        return f"Hello, {escape(name)}"  # 对其转义是为了防止直接运行注入代码了
    # return f"Hello, {name}"  # 直接这样写 并且用户输入的是<script>alert("bad")</script> 则会弹窗!
    else: return "Hello, World!"

那么就会报错说没有给name赋值!

则必须像以下这样写:以下只是另一个例子!

@app.route("/hello3")
@app.route("/hello3/<name>")
def hello3(name=None):
    print("请求路径: \t",request.path)
    print("请求方法: \t",request.method)
    print(dir(request))
    print("---------------")
    for req in dir(request):
        # print(req)
        try:
            print(req,end=': ')
            exec('print(request.'+req+")")
        except:
            pass
    return render_template("hello.html",name=name)

如果name为None没有赋值,则会使用第一个hello3路由!!!

同时也是使用同一个函数的操作 只是说name是None的操作   

感觉这就是纯纯杀软的操作,本来写一个路由就行   以后记到就行  参数为空时(不设置时且默认为空时)就必须写一个参数为空的情况的路由!!!

将app.py的代码改成如下就行:

只是加了第一行的内容:文章来源地址https://www.toymoban.com/news/detail-525639.html

@app.route("/")
@app.route("/<name>")
def hello(name=None):
    # name = '<script>alert("bad")</script>'
    if name:
        return f"Hello, {escape(name)}"  # 对其转义是为了防止直接运行注入代码了
    # return f"Hello, {name}"  # 直接这样写 并且用户输入的是<script>alert("bad")</script> 则会弹窗!
    else: return "Hello, World!"

到了这里,关于flask中url_for的坑的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • nginx+flask+uwsgi部署遇到的坑

    centos8 uWSGI 2.0.22 gmssl 3.2.2 nginx version: nginx/1.18.0 项目目录: 如果lsof -i:8000查看的时候显示进程被nginx使用才是正常的,如果不是就是你的nginx有问题 1.查看网络是否通畅 2.查看端口是否通畅 3.nginx是否正常运行(查询配置的端口具体是否被nginx监听中) 4.查看ini配置中的日志具体

    2024年02月14日
    浏览(41)
  • 〖大前端 - 基础入门三大核心之JS篇⑯〗- JavaScript的流程控制语句「for循环语句及算法题」

    当前子专栏 基础入门三大核心篇 是免费开放阶段 。 推荐他人订阅,可获取扣除平台费用后的35%收益,文末名片加V! 说明:该文属于 大前端全栈架构白宝书专栏, 目前阶段免费开放 , 购买任意白宝书体系化专栏可加入 TFS-CLUB 私域社区。 福利:除了通过订阅\\\"白宝书系列专

    2024年02月07日
    浏览(51)
  • vue + element ui实现播放器功能以及动态传递url导致无法播放的坑

    vue+elementui实现列表弹框播放视频 实现的效果图 实现的播放效果 实现的代码如下 el-table-column v-if=\\\"formName !== \\\'在线表格\\\'\\\" align=\\\"center\\\" fixed=\\\"right\\\" label=\\\"实时监控\\\" class-name=\\\"operate-col\\\" width=\\\"70\\\" template #default=\\\" scope \\\" div class=\\\"chat-tipOne\\\" @click=\\\"playVideo(require(\\\'../../assets/images/runtime/crm_monit

    2024年02月05日
    浏览(45)
  • go中 for循环的坑

    在使用for循环修改结构体切片中的值时,发现并没有修改成功。 结果切片中dog的name并没有全部变为123,后来查资料才知道for循环中的dog其实是个变量,指向的并不是真正的dog。 打印其地址对比可以看出压根就不同。 若要修改切片中的dog的name,应该按照以下这么写,或者将

    2023年04月26日
    浏览(29)
  • 软件测试|测试平台开发-Flask 入门:URL组成部分详解

    简介 Flask 是一款流行的 Python Web 框架,它简单轻量而灵活,适用于构建各种规模的 Web 应用程序。在 Flask 中,URL(Uniform Resource Locator)是指定 Web 应用程序中资源的唯一标识符。URL 组成部分是构成一个完整 URL 的不同部分,包括协议、主机名、端口号、路径和查询参数等。在

    2024年01月16日
    浏览(45)
  • go中for range的坑以及解决方案

    相信小伙伴都遇到过以下的循环变量的问题,那是因为循环的val变量是重复使用的,即仅有一份。也就是说,每次循环后赋给val的值就会把前面循环赋给val的值替换掉,所以打印出来的值都是最后一次循环赋给val的值。 使用局部变量/临时变量,即可解决         可以设置

    2024年01月25日
    浏览(39)
  • 将URL转换为汉字(JavaScript实现)

    在Web开发中,我们经常需要处理URL,并在某些情况下需要将URL转换为汉字。在JavaScript中,我们可以使用一些内置函数和技术来实现这个目标。下面我将介绍一种常见的方法来将URL转换为汉字。 方法一:使用decodeURI函数 JavaScript提供了一个内置函数 decodeURI ,它可以解码经过编

    2024年02月04日
    浏览(40)
  • JavaScript 图片url地址转base64

    目录 前言 一、图片地址转base64 记录来自于每一次的实际需求; 此次需要做的是将拿到的图片,转png格式下载,看了下数据库返回的地址,有png、svg、jpg格式,我的想法是先通通转base64,再处理成png下载。 1、先定义一个方法  2、存储返回的base64,并转为png格式下载

    2024年02月16日
    浏览(41)
  • 四、Flask学习之JavaScript

    JavaScript ,作为一种前端脚本语言,赋予网页生动的交互性和动态性。通过它,开发者能够操作DOM(文档对象模型)实现页面元素的动态改变、响应用户事件,并借助AJAX技术实现异步数据请求,为用户提供更流畅的浏览体验。在现代Web开发中,JavaScript不仅是构建丰富用户界面

    2024年01月24日
    浏览(44)
  • URLSearchParams:JavaScript中的URL查询参数处理工具

    在Web开发中,处理URL查询参数是一项常见的任务。为了简化这一过程,JavaScript提供了URLSearchParams API。URLSearchParams是一个用于解析、操作和生成URL查询参数的实用工具。它使开发人员能够方便地访问和修改URL中的查询参数,从而简化了URL参数的处理过程。本文将深入探讨URLS

    2024年02月01日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包