Flask----常用路由系统及自定义路由系统
- @app.route(’/user/<username>’)
- @app.route(’/post/<int:post_id>’)
- @app.route(’/post/<float:post_id>’)
- @app.route(’/post/<path:path>’)
- @app.route(’/login’, methods=[‘GET’, ‘POST’])
常用路由系统有以上五种,所有的路由系统都是基于以下对应关系来处理:
DEFAULT_CONVERTERS = {
'default': UnicodeConverter, #字符串
'string': UnicodeConverter, #字符串
'any': AnyConverter,
'path': PathConverter,
'int': IntegerConverter,
'float': FloatConverter,
'uuid': UUIDConverter, }
from werkzeug.routing import BaseConverter #所有路由匹配都来自于BaseConverter类
app = Flask(import_name=__name__)
class RegexConverter(BaseConverter):
# 自定义URL匹配正则表达式
def __init__(self, map, regex):
super(RegexConverter, self).__init__(map)
# 匹配传进来的正则表达式
self.regex = regex
def to_python(self, value):
'''
路由匹配时,匹配成功后传递给视图函数中参数的值
:param value:
:return:
'''
return int(value)
def to_url(self, value):
'''
使用url_for反向生成url时,传递的参数经过该方法处理,返回的值用于生成url中的参数
:param value:
:return:
'''
val = super(RegexConverter, self).to_url(value)
return val
# 添加到flask中
app.url_map.converters['regex'] = RegexConverter
@app.route('/index/<regex("\d+"):nid>')
def index(nid):
print(nid, type(nid))
print(url_for('index', nid=nid))
return 'index'
if __name__ == '__main__':
app.run()
Flask----常用路由系统及自定义路由系统的更多相关文章
- WPF自学入门(四)WPF路由事件之自定义路由事件
在上一遍博文中写到了内置路由事件,其实除了内置的路由事件,我们也可以进行自定义路由事件.接下来我们一起来看一下WPF中的自定义路由事件怎么进行创建吧. 创建自定义路由事件分为3个步骤: 1.声明并注册 ...
- MVC路由学习:自定义路由参数(用户看不到参数名),重新定义路由规则
MVC路由:由于路由global中注册了,在程序第一次运行时,在MVC会自动生成路由,类似于字典的格式缓存下来,但路由生成的规则又是怎样的呢? 路由生成规则是: 1>更具你定义的的顺序查找路由规 ...
- DRF内置认证组件之自定义认证系统
自定义token认证 我们知道,在django项目中不管路由以及对应的视图类是如何写的,都会走到 dispatch 方法,进行路由分发, 在阅读 APIView类中的dispatch 方法的源码中,有 ...
- .NET/ASP.NET Routing路由(深入解析路由系统架构原理)
阅读目录: 1.开篇介绍 2.ASP.NET Routing 路由对象模型的位置 3.ASP.NET Routing 路由对象模型的入口 4.ASP.NET Routing 路由对象模型的内部结构 4 ...
- .NET/ASP.NET Routing路由(深入解析路由系统架构原理)http://wangqingpei557.blog.51cto.com/1009349/1312422
阅读目录: 1.开篇介绍 2.ASP.NET Routing 路由对象模型的位置 3.ASP.NET Routing 路由对象模型的入口 4.ASP.NET Routing 路由对象模型的内部结构 4 ...
- NET/ASP.NET Routing路由(深入解析路由系统架构原理)(转载)
NET/ASP.NET Routing路由(深入解析路由系统架构原理) 阅读目录: 1.开篇介绍 2.ASP.NET Routing 路由对象模型的位置 3.ASP.NET Routing 路由对象模 ...
- 一、ASP.NET Routing路由(深入解析路由系统架构原理)
阅读目录: 1.开篇介绍 2.ASP.NET Routing 路由对象模型的位置 3.ASP.NET Routing 路由对象模型的入口 4.ASP.NET Routing 路由对象模型的内部结构 4 ...
- django路由系统及分发路由的本质
路由系统 当我们启动一个django项目后,想要通过浏览器访问到django项目中的资源 就需要在django中的urls项目中进行路由配置 urlpatterns = [ url(r'^admin/ ...
- YbSoftwareFactory 代码生成插件【二十四】:MVC中实现动态自定义路由
上一篇介绍了 公文流转系统 的实现,本篇介绍下MVC下动态自定义路由的实现. 在典型的CMS系统中,通常需要为某个栏目指定个友链地址,通过指定友链地址,该栏目的地址更人性化.方便记忆,也有利用于搜索引 ...
- Web API配置自定义路由
默认访问Web API时,是无需指定method名.它会按照默认的路由来访问.如果你的Web API中出现有方法重载时,也许得配置自定义路由: 标记1为自定义路由,标记2为默认路由,需要把自定义路由排 ...
随机推荐
- CamstarVP表格删除行报错
前提:是从服务中拖出来的表格,带表达式的.但是点击删除按钮的时候,直接页面报错. 原因是:VP上面没有指定服务.
- pytest 之conftest.py是什么
conftest.py是pytest框架的固定写法:可以把hook和fixture写在这个文件里,就会自动去调用:conftest.py相当于可以编写自己的插件: 也可以理解为pytest特有的本地测 ...
- Mybatis二级缓存(1)
- [转]C#中的自定义事件和EventHandler的使用
自定义事件: 这里主要模拟刷银行卡,手机提示刷卡信息的过程. 声明一个委托类型 public delegate void DelMethod(string bankName,decimal d ...
- GoLang之ACM控制台输入输出
转自:https://blog.csdn.net/weixin_52690231/article/details/125436414
- 没有可用软件包 iostat。
说明: iostat 主要用于监控系统设备的IO负载情况,根据这个可以看出当前系统的写入量和读取量,CPU负载和磁盘负载. iostat 命令的输出结果包含了很多信息,以下是一些常见的统计指标的解释: ...
- 微信小程序顶部透明
{ "pages": [ "pages/index/index" ], "window": { "backgroundTextSt ...
- laravel service provider 1
可以理解成分两步: 配置.register, 因为只有配置了才有被调用去register, 也许不配置直接在appserviceProvider里面可以直接生效.... service: 具体工作的类 ...
- lua-table类的继承
--男人类man = {name = "man",age=123}--继承空间man.__index=man--儿童类child= {}--继承setmetatable(child ...
- vs2019 常用数据结构 纯C语言 头文件实现 (持续更新改错中)单链表,
1.单链表: 1 #pragma once 2 #ifndef _List_H 3 #include<stdio.h> 4 #include<stdlib.h> 5 #defi ...