当我们访问网站/的时候,会执行hell_world函数,并把这个函数的返回值返回给浏览器,这样浏览器就显示hello world了
@app.route('/') def hello_world(): return 'Hello World!'
按照这种映射关系,我们可以再写一个,比如文章列表
@app.route('/article_list/') def article_list(): return 'Article list'
这样,我们访问127.0.0.1:5000/article_list/的时候,浏览器就会显示Article list
那么我们要如何给url传参呢?
比如我们来写个文章详情页
@app.route('/article/<article_id>/') #我们在<>里面写参数名article_id def article_detail(article_id): #这里的参数名要和上面的一致,即article_id return '您请求的文章是:{}'.format(article_id)
访问http://127.0.0.1:5000/article/1/
限定参数数据类型
可以对参数限定数据类型,比如上面的文章详情,限定article_id必须为整数型
@app.route('/article/<int:article_id>/') def article_detail(article_id): return '您请求的文章是:{}'.format(article_id)
这样当我们传递的参数是int类型的时候才能正常访问,其他类型都会返回404
类型可以设置提下几种:
string: 默认的数据类型,接收没有任何斜杠"\ /"的文本
int: 整数形
float: 浮点型
path: 和string类似,但是接受斜杠
uuid: 只接受uuid字符串
any: 可以指定多种路径,比如以下例子
@app.route('/<any(article,blog):url_path>/<id>/') def item(url_path, id): if url_path == 'article': return '文章详情:{}'.format(id) else: return '博客详情:{}'.format(id)