做网站建设需要会哪些苏州企业网站建设开发与制作
目录
- 简单的例子
 - 手动类型转换
 - 自动类型转换
 - 自定义路由过滤器
 
简单的例子
先看一个简单的例子,GET请求需要传递一个参数,我们直接获取的是字符串
from flask import Flaskapp = Flask(__name__)@app.get("/<value>")
def index(value):return str(2 == value)if __name__ == "__main__":app.run() 
GET http://127.0.0.1:5000/2False
 
手动类型转换
需要获取数值,需要进行类型转换
from flask import Flaskapp = Flask(__name__)@app.get("/<value>")
def index(value):# return str(2 == value)return str(2 == int(value))if __name__ == "__main__":app.run() 
GET http://127.0.0.1:5000/2True
 
自动类型转换
Flask提供了内置的类型过滤器,可以直接转换成我们需要的类型,就不需要手动进行类型转换了
from flask import Flaskapp = Flask(__name__)@app.get("/<int:value>")
def index(value):# return str(2 == int(value))return str(2 == value)if __name__ == "__main__":app.run() 
GET http://127.0.0.1:5000/2True
 
支持的过滤类型
string: 默认的数据类型,接收没有任何斜杠"\ /"的字符串
int: 整型
float: 浮点型
path: 和string类型相似,但是接受斜杠,如:可以接受参数/aa/bb/cc/多条放在一起
uuid: 只接受uuid格式的字符串字符串,
自定义路由过滤器
继承BaseConverter类,实现两个转换方法即可
from flask import Flask, url_for
from werkzeug.routing import BaseConverterapp = Flask(__name__)# 定义转换器
class ListConverter(BaseConverter):def to_python(self, value):"""解析url参数"""return value.split(',')def to_url(self, value):"""转为url参数"""return ','.join(value)# 注册
app.url_map.converters['list'] = ListConverter@app.get("/<list:value>")
def index(value):print(url_for('index', value=['a', 'b', 'c']))# 输出:/a,b,creturn str(value)if __name__ == "__main__":app.run() 
GET http://127.0.0.1:5000/1,2,3['1', '2', '3']
