首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

flask第七篇——URL与视图函数的映射

今天开始就要进入正题了。大家都准备好了吧~

代码提示

先和大家说个小知识点:有同学后台说输入flask代码pycharm不提示,现在告诉你一个解决方法:在上面代码后面加上就会提示啦。

URL与视图函数的映射

url与视图函数的映射是通过装饰器实现的。

1、只有一个斜杠代表的是根目录——首页。

上面代码`@app.route('/')`装饰器传参只有一个斜杠/,这时候运行代码就会跳转到根目录——首页。如图:

2、传参

URL传参是通过``的形式进行传递。另外,URL中有几个参数,在视图函数中也要指定几个参数。参数名称可以自己定义,代码如下:

执行代码后,在浏览器输入你设置的地址可以看到:

需要注意的是,上面里面写的参数名称必须和你def函数里传参名称相同,比如我写的参数名叫username,那么我代码里login后面的形参名称必须叫username,上面代码我传了两个参数,地址写的时候分别传了warrior和123。

3、URL的数据类型

1)如果没有指定,默认是类型

2)string:字符串,接收任何没有斜杠/的字符。

3)int:整型

4)float:浮点类型

5)path:和string类似,但是可以接收斜杠/

6)uuid:只接收uuid字符串

7)any:可以指定多个路径

例如,现在我们指定一个参数为int类型:

在页面中我传入两个1,可以看到:

但是当我传入warrior和1以后就找不到页面了,因为warrior不是int类型:

uuid

接下来简单说一下uuid,因为uuid在传参的时候更长用,uuid就是唯一的一串字符,永远不会出现重复,比如:

上面代码中我们先导入了模块,然后通过打印出了一串uuid:

这时候因为我们指定了username是uuid类型的,所以当我们进入的时候就会找不到地址,我们将控制台打印的uuid替换1:就可以看到:

any

any就是指定传递的任意参数,比如下面代码我们指定传参为username或者blog,那么我们在URL中输入username或者blog都会链接到指定页面,输入any指定参数以外的内容页面则会报错:

参数传递

最后我们来说一下参数传递。理论上推荐path——接收带斜杠的字符串形式传递参数,因为这样有利于网站的SEO即网站在搜索引擎结果的排名:

另一种传参方式就是大部分网站在用的这种查询字符串的方式:

上面就是获取地址里的传参:

至于想用哪种方式,就看你是不是在乎自己网站在搜索引擎中的排名啦~

这一节内容稍微有点多,大家慢慢消化,最后把代码贴给大家,供大家参考:

感谢@zuz5的赞赏和提的建议~~

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180305G1Q8SO00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券