资讯专栏INFORMATION COLUMN

Flask动态路由

sshe / 2638人阅读

摘要:在通常我们写路由的时候都是这样子的但是我们会有这样的需求,判断字符串的类型或长度来决定使用哪个视图函数或者返回,那我们就可以这样做返回发生错误返回发生错误返回返回返回上面写了常用的三种动态路由限制类型,当然我们还可以自定义类型,继承然后就可

在通常我们写路由的时候都是这样子的:

@app.route("/")
def hello():
    return "Hello World"

但是我们会有这样的需求,判断字符串的类型或长度来决定使用哪个视图函数或者返回404,那我们就可以这样做:

@app.route("/int:requirt>")
def fn_int(requirt):
    return "

"+str(requirt)+"

" #http://127.0.0.1:5000/123 返回"

123

" #http://127.0.0.1:5000/12 发生404错误 @app.route("/") def fn_float(requirt): return "

"+str(requirt)+"

" #http://127.0.0.1:5000/1.2 返回"

1.2

" #http://127.0.0.1:5000/12 发生404错误 @app.route_path("/") def fn(requirt): return "

"+requirt+"

" #http://127.0.0.1:5000/1.2 返回"

1.2

" #http://127.0.0.1:5000/12 返回

12

#http://127.0.0.1:5000/hello 返回

hello

上面写了常用的三种动态路由限制类型,当然我们还可以自定义类型,继承BaseConverter,然后就可以写我们的规则了

from werkzeug.routing import BaseConverter

class MyConverter(BaseConverter):
    def __init__(self,map,regex):
        super().__init__(map)
        self.regex=regex
   
app.url_map.converters["rule"]=MyConverter

@app.route_path("/")
def fn_rule(requirt):
    return "

"+requirt+"

" #http://127.0.0.1:5000/hello 发生404 #http://127.0.0.1:5000/123 返回"

123

" #http://127.0.0.1:5000/12.3 发生404

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/42854.html

相关文章

  • Flask Web Development —— 基本应用程序结构(上)

    摘要:注对于开发者来说,传给应用程序构造函数的参数是比较容易弄混淆的。在应程序中定义路由的最便捷的方式是通过显示定义在应用程序实例之上的装饰器,注册被装饰的函数来作为一个路由。一个常见的模式是使用装饰器来注册函数作为一个事件处理程序。 在这一章,你将学习Flask应用程序不同部分。同时你将编写和运行你的第一个Flask web应用程序。 1、初始化 在这章,你将学到Flask应用程序的不...

    NusterCache 评论0 收藏0
  • 02_01_创建最简单的web程序

    摘要:初始化所有的程序都必须创建一个程序实例,这个程序实例就是类的对象。定义路由最简便的方式,是使用程序实例提供的修饰器前例把函数注册为程序根地址的处理程序。 初始化 所有的Flask程序都必须创建一个程序实例, 这个程序实例就是Flask类的对象。客户端把请求发送给Web服务器, 服务器再把请求发送给Flask程序实例, 然后由程序实例处理请求。 创建程序实例: from flask im...

    zsy888 评论0 收藏0
  • Flask Web Development —— 模板(下)

    摘要:如果路由重组,模板中的链接将被打断而变得无法访问。静态文件应用程序不仅仅是由代码和模板组成。当服务器收到来自之前示例的,它会产生一个响应包含的文件内容。一个优雅的解决方案是允许服务器只发送时间给浏览器,由浏览器转为当地时间并渲染。 4、链接 任何应用程序都有多个路由,必然需要包含链接来连接不同的页面,例如导航栏。 在模板中,对于简单的路由直接写URLs做链接是非常琐碎麻烦的,而给带...

    raoyi 评论0 收藏0
  • [贰]Flask web开发:程序的基本结构

    摘要:本篇对应书本第二章程序的基本结构。初始化导入模块创建类的实例注对于开发者来说,传给应用程序构造函数的参数是比较容易弄混淆的。不同的请求方法发送到相同的上时,会使用不同的视图函数进行处理。 本系列笔记是我阅读Miguel Grinberg的《Flask Web Development》的笔记,标题与书本同步。希望通过记录技术笔记的方式促进自己对知识的理解。 本篇对应书本第二章:程序的基本...

    maxmin 评论0 收藏0
  • flask文档学习笔记1-快速入门

    摘要:示例如下静态路由使用动态变量的路由未指定变量类型使用动态变量的路由指定变量类型指定的路由变量,可以作为被装饰的函数参数传入进来。 开始决定认真的在网上写一些东西,主要原因还是在于希望能提升学习效果。虽说python写了有几年,但是web后端框架的确没怎么接触过,买了本狗书寥寥草草的过了一遍,发现很多东西还是理解不深,真的是好记性不如烂笔头,知识也要从基础开始,退回来好好看看官方文档,再...

    lingdududu 评论0 收藏0
  • Flask框架基础(二)

    摘要:处理和函数之间关系的程序称为路由。模板引擎是由实现的是内置的模板语言参照设计思想设计的,跟差不多渲染模板默认情况下,在程序文件夹中的子文件夹中寻找模板。如果需要可在文件夹中使用子文件夹存放文件。 1 程序的基本结构 1.1初始化 所有Flask 程序都必须创建一个程序实例。Web 服务器使用一种名为Web 服务器网关接口(Web Server Gateway Interface,WSG...

    lpjustdoit 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<