蓝图、Flask路由参数、postman、反向解析

一.蓝图

1.概念

蓝图也可称为规划,主要用来规划urls(路由),也就是帮助我们找到路径。

2.基本使用

  1. 安装:
      pip install flask-blueprint
  2. 在视图函数中,创建蓝图对象:
      blue = Blueprint(‘蓝图的名字’,name)
  3. 将app.route修改为blue.route()
     在这里插入图片描述

一个企业级项目,会有很多的这样的类似的视图函数。
所有的代码都在manager中来书写,这样看起来比较乱,而且没有分层,所以我们要封装,将flask的代码修改为mtv的架构。

  1. 在manager中注册蓝图:
      app.register_blueprint(blueprint=blue)
    在这里插入图片描述

3.init文件关联

App是个python的文件夹,里面有static、templates、views、init文件。
与App同级的有一个manager的文件。
1.在init文件中,调用create_app()方法,返回app对象。
在这里插入图片描述
2.在manager文件中,添加app= create_app()。
create_app的方法返回的就是app对象和Flask (_name_)的作用是一致的。
在这里插入图片描述

结论:
1.App和manager是通过init建立关联的
2.路由是写在views里的,路径的问题是通过蓝图来解决

二.Flask路由参数

1.概念

参数种类:1.路由参数 2.请求参数
路由参数:127.0.0.1:5000/index/1/(主机+端口号+资源路径)
请求参数:127.0.0.1:5000/index?name=zhangsan/

2.基本使用

当在路由中定义了路由参数,那么必须要在视图函数中去添加参数。
其中获得路由参数的值,默认情况下是str类型的。

在视图函数中添加:

@blue.route('/testRoute/<id>/')
def testRoute(id):
    print(id)
    print(type(id))
    return 'testRoute'

运行结果:
在这里插入图片描述
云服务器上显示:
在这里插入图片描述
1.路由参数-string

@blue.route('/testString/<string:s>/')
def testString(s):
    print(s)
    print(type(s))
    return 'testString'

运行结果:
在这里插入图片描述
云服务器上显示:
在这里插入图片描述
2.路由参数-path

@blue.route('/testPath/<path:p>/')
def testPath(p):
    print(p)
    print(type(p))
    return 'testPath'

运行结果:
在这里插入图片描述
云服务器上显示:
在这里插入图片描述
string和path的区别:
  string 接收的时候也是str, 匹配到 / 的时候是匹配结束。
  path 接收的时候也是str, / 只会当作字符串中的一个字符处理。
3.路由参数-int

@blue.route('/testInt/<int:i>/')
def testInt(i):
    print(i)
    print(type(i))
    return 'testInt'

4.路由参数-float

@blue.route('/testFloat/<float:f>/')
def testFloat(f):
    print(f)
    print(type(f))
    return 'testFloat'

注意:传递的路由参数,必须是float类型,不允许是整型的。

5.路由参数-uuid
uuid是一个数据类型。

@blue.route('/getuuid/')
def getuuid():
    u = uuid.uuid4()
    print(u)
    return 'getuuid'

或者:

@blue.route('/testUuid/<uuid:u>/')
def testUuid(u):
    print(u)
    print(type(u))
    return 'testUuid'

6.路由参数-any

@blue.route('/testAny/<any(a,b):p>/')
def testAny(p):
    print(p)
    print(type(p))
    return 'testAny'

any中必须指定的字符来传递(a或b),any中只能存储字符。

三.postman

1.安装

可在Windows上安装postman软件,安装地址:https://www.postman.com/downloads/

2.基本介绍

postman是模拟请求工具,方法参数中可添加methods=[‘GET’,‘POST’]
默认支持GET,HEAD,OPTIONS
如果想支持某一请求方式,需要自己手动指定
在route方法中,使用methods=[“GET”,“POST”,“PUT”,“DELETE”]

@blue.route('/testPostMan/',methods=['post','Get','put','patch','delete'])
def testPostMan():
    return 'testPostMan'

在这里插入图片描述

注意

  1. 模拟请求方式的工具,默认flask的视图函数,只能接受get、head、options三种请求方式的路由。
  2. 通过浏览器去访问的一般都是get请求方式
  3. 页面显示404表示路径的错误 ,显示405表示请求方式错误
  4. 如果想让路由支持某一种请求方式,那么可以在route方法中添加methods=[’post’]
  5. 如果指定了请求方式,那么默认的请求方式将不好用
  6. 请求方式是不区分大小写的

四.反向解析

1.概念

正常我们执行请求资源路径,然后调用方法,反向解析就是通过方法来获取请求资源路径。

2.格式

url_for(蓝图的名字.方法名字)

3.使用

@blue.route('/demo/')
def demo():
    return 'demo'
@blue.route('/testUrlfor/')
def testUrlfor():
    # url_for('蓝图的名字.方法名字(就是你想获取那个路径的方法的名字)')
    a = url_for('first.demo')
    print(a)
    return 'testUrlfor'

运行结果:
在这里插入图片描述
云服务器上显示:
在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值