URL与视图函数的映射
传递参数
传递参数的语法是:’/<参数名>/’ ,然后在视图函数中,也要定义同名的参数
@app.route(’/article/<article_id>/’)
def article_detail(article_id):
return ‘文章是: %s’ %article_id
设置需要传递的参数类型
@app.route(’/p/int:article_id’)
参数的数据类型
1,如果没有指定具体的数据类型,那么默认的就是使用 string 数据类型
2,int 数据类型只能传递 int 类型
3,float 数据类型只能传递float 类型
4,path 类型和string 有点类似,都是可以接收任意的字符串,但path可以接收路径 ,
也就是/
5,uuid 数据类型只能接收符合uuid 的字符串 uuid 是一个全世界唯一的字符串
6,any 数据类型可以在一个 url 中指定 多个路径 如:
@app.route(’/<any(blog, user):url_path>//’)
def detail(url_path, id):
if url_path == ‘blog’:
return ‘博客, %s’ %id
else:
return ‘用户 %s’ %id
接收用户传递的参数
1 使用path 的形式(将参数嵌入到路径 中)
2 使用查询字符串的方式,就是通过 ?key=value的形式传递
@app.route(’/d/’)
def d():
vd = request.args.get(‘wd’)
return ‘通过查询字符串的方式是 %s’ %vd
3 如果你的页面想要做 SEO优化,就是被搜索引擎搜到,那么推荐使用第一种 即路径,
如果不在乎搜索优化,则推荐第二种即?方式