Flask----常用路由系统及自定义路由系统
2024-09-08 17:47:36
- @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 flask import Flask, views, url_for
from werkzeug.routing import BaseConverter #所有路由匹配都来自于BaseConverter类
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()
最新文章
- 文本框focus之后高亮背景颜色
- Elastic学习第一天遇到的问题以及添加的一些操作
- C# serialport
- 中南民航如何利用K2BPM构建业务流程?
- 【JavaScript】HTML5存储方案
- ASP.NET发布WebService
- angular的post请求,SpringMVC后台接收不到参数值的解决方案
- hadoop Yarn 编程API
- 完美让IE兼容input placeholder属性的jquery实现
- leetcode先刷_Climbing Stairs
- C# 中使用WebClient 请求 https
- js拾遗:appendChild 添加移动节点
- MHN蜜罐系统建设
- 使用mysql proxy对数据库进行读写分离
- EHlib在数据单元中显示字段值为图形。
- spring 接收前台ajax传来的参数的几个方法
- Redis 连接命令
- Spring Boot 运作原理
- 在 Sublime Text 2 中编译和运行 Java 程序,以及输出中文出错问题解决办法
- Hexo 最常用的几个命令