Flask学习笔记之url和函数映射
2018-11-17 本文已影响8人
罗罗攀
大纲
这是flask的第二篇文章,在第一篇文章中,我们看到了flask是如何让固定url和和函数保证对应的,但现实的URL中,URL路径是多变的,今天我们就来学习详细的url和函数映射:
- 加入参数
- URL传参
加入参数
我们首先回顾下第一天的内容,通过下面代码,我们就能做到固定URL到函数的映射,在根路径下就会返回Hello World!。
@app.route('/')
def hello_world():
return 'Hello World!'
但有时候我们的URL路径是不固定的,例如有些网站,针对不同的用户就是不同的URL,传入的数据也就不一样。例如下面的代码,我们把name当做参数传入,这样就可以返回不固定的内容。
@app.route('/u/<name>')
def user(name):
return '欢迎:{}'.format(name)
这个name参数是默认传入的字符串数据类型,当然还是有其他传入类型的:
- string为字符串类型,默认情况就是这样的。
- int就是整数类型
- float浮点数内心
- path,和string类似,单数path可以接受斜杠
- uuid,一个全宇宙都唯一的字符串,一般可以用来作为表的主键
- any,可以同时指定多个路径
我们首先举例子,看一下这个是如果指定的:
@app.route('/p/<int:id>')
def article(id):
return '文章id为%s' % id
然后,我们看下any的使用方法:
@app.route('/<any(blog,user):url_path>/<id>')
def detail(url_path,id):
if url_path == 'blog':
return '博客id%s' % id
else:
return '用户id%s' % id
URL传参
在百度中,输入关键词,是通过?key=value的形式传递的,这个是查询字符串的方式,使用如下。
from flask import Flask,request
@app.route('/p/')
def p():
wd = request.args.get('wd')
return '查询的参数为:%s' % wd