flask学习笔记(三) --URL与视图函数映射

举报
王建峰 发表于 2021/11/19 02:15:12 2021/11/19
【摘要】 欢迎加入知了课堂,学习flask Python Flask系列(1)——基础:http://study.163.com/course/courseMain.htm?courseId=1004091002 Python Flask框架——全栈开发: http://study.163.com/course/courseMain....

欢迎加入知了课堂,学习flask

Python Flask系列(1)——基础:http://study.163.com/course/courseMain.htm?courseId=1004091002

Python Flask框架——全栈开发: http://study.163.com/course/courseMain.htm?courseId=1004507006



客户端通过URL(统一资源定位符)访问服务器上的特定资源,今天介绍如何使用flask完成到视图函数映射这一环节。


一.基本用法

@app.route( '/' )
def hello_world():
return 'Hello World!'

        首先要用到的就是修饰器 @app.route(' / '),它吧下面 hello_world()这个视图函数修饰成路由,括号里的参数规定请求的路径。这样用户就可以根据 '/' 这个路径,访问视图函数。比如:IP地址是 127.0.0.1 ,端口是 5000、使用http协议 浏览器输入 http://127.0.0.1:5000/就能访问到这个视图函数,服务器随后给浏览器返回一个字符串 'Hello World!'。一个视图函数可以指定多个URL路径,后面我再介绍配置方法。


二.将参数嵌套在路径里

        @app.route(' xxx ') 路径参数可以写死,也可以是变化的。比如,app.route(' /index/ ') 这样你只能通过 http://127.0.0.1:5000/index/ 来访问下面的视图函数,index在这里只能算是一个字符串常量。如果路径的某一部分能够接受不同的数据,并把数据作为参数传入视图函数进处理,实现不同的返回。这样就能针对用户不同的输入展示不同的欢迎信息。听上去很不错,那么怎么实现呢?

@app.route( '/user/<name>' )
def index(name):
return '欢迎:{}'.format(name)

  



    传递参数的语法是:`/<参数名>/`。然后在视图函数中,也要定义同名的参数。

    要给参数指定数据类型,语法是 '/<类型名:参数名>/'。

1.如果没有指定具体的数据类型,那么默认就是使用`string`数据类型。

2. `int`数据类型只能传递`int`类型。

3. `float`数据类型只能传递`float`类型。

4. `path`数据类型和`string`有点类似,都是可以接收任意的字符串,但是`path`可以接收路径,也就是说可以包含斜杠。

5. `uuid`数据类型只能接收符合`uuid`的字符串。`uuid`是一个全宇宙都唯一的字符串,一般可以用来作为表的主键。

6.前面说过可以给一个视图函数指定多个url,是通过`any`数据类型,可以在一个`url`中指定多个路径。例如:

    ```python

    @app.route('/<any(blog,article):url_path>/<id>/')

    def detail(url_path,id):

        if url_path == 'blog':

            return '博客详情:%s' % id

        else:

            return '博客详情:%s' % id

    ```


三.另一种URL传参的方法

        第一种:使用path的形式(将参数嵌入到路径中),就是上面讲的。第二种:使用查询字符串的方式,就是通过`?key=value`的形式传递的。比如, http://127.0.0.1:5000/index/?wd=value  ,在视图函数这边对应的处理如下

    @app.route('/index/')

    def d():

        wd = request.args.get('wd')

        return '您通过查询字符串的方式传递的参数是:%s' % wd

使用request方法,要引入这个类

from flask import Flask,request


四.总结
   如果你的这个页面的想要做`SEO`优化,就是被搜索引擎搜索到,
   那么推荐使用第一种形式(path的形式)。如果不在乎搜索引擎优化,
   那么就可以使用第二种(查询字符串的形式)。

欢迎加入知了课堂,学习flask

Python Flask系列(1)——基础:http://study.163.com/course/courseMain.htm?courseId=1004091002

Python Flask框架——全栈开发: http://study.163.com/course/courseMain.htm?courseId=1004507006


文章来源: blog.csdn.net,作者:hinzer,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/feit2417/article/details/79830171

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。