zoukankan      html  css  js  c++  java
  • flask学习记录02-路由转换器和指定请求方式

    今天主要分享flask学习记录中的路由参数-转换器和指定访问方式以及接口调试

    为方便阅读,可参考如下目录:

    • flask run 知识补充

    • 路由的参数-转换器

    • 指定接口请求方式

    一.flask run知识补充

    在上一节中提到了可以通过flask run 方法进行运行,后来了解到flask run 后也是可以跟一些参数的 可以通过命令flask run --help的方式去查询。

    最常用的就是绑定host和port,host告诉web服务器在哪个网络接口上监听客户端发来的连接,port是指定运行的端口

    我们实际开发中常用来设置成公共域名0.0.0.0,这样同一网络中的其他计算机也可以访问到,如下是详细命令:

    # h指定域名,p指定端口
    flask run -h 0.0.0.0 -p 5341
    
    

    二.路由的参数-转换器

    5.1什么是转换器?

    在上一节中,我们在路由中加入了参数,返回前端页面时使用这个参数,这样我们在浏览器输入什么,就会展示什么参数

    包裹这个参数的<>符号就是我们今天的主角-转换器

    路由中的<>叫做转换器,作用是将满足要求的参数提取出来,作为参数传递给函数

    <>中默认的数据类型是string,所以我们在上一节中输入数字字符串和字母字符串等都可以提取出来,返回给前端

    5.2转换器的分类和使用

    5.2.1转换器int

    首先转换器中是可以指定数据类型的,我们默认的是string字符串类型,

    那么我们可以只指定返回整数类型吗?答案是可以的。

    通过int:参数的形式指定仅返回整数类型(写个demo看下效果)

    from flask import Flask
    
    app = Flask(__name__)
    
    @app.route('/')
    def index():
        return '这是一个首页'
    
    @app.route('/index/<int:user_id>')
    def welcome(user_id):
        return '欢迎我们的{}号选手登场'.format(user_id)
    
    if __name__ == '__main__':
        app.run(debug=True)
    
    

    这个时候我们输入一个整数类型看下

    我们再输入一个字符串类型看下

    这个时候我们已经看出来,参数的数据类型已经做了限制,那么我们思考下,如果是小数,会返回成功吗?

    答案是不会,因为小数类型不属于整数,这就引出了我们下一个转换器float

    通过float:参数的形式指定仅返回小数类型(修改demo中数据类型看下)

    from flask import Flask
    
    app = Flask(__name__)
    
    @app.route('/')
    def index():
        return '这是一个首页'
    
    @app.route('/index/<float:user_id>')
    def welcome(user_id):
        return '欢迎我们的{}号选手登场'.format(user_id)
    
    if __name__ == '__main__':
        app.run(debug=True)
    
    

    这个时候看下效果,是不是立马到位了

    三.指定接口请求方式

    这里引出路由中的第二个参数methods,用于限制用户的访问方式

    我们设置默认访问方式为Get

    from flask import Flask
    
    app = Flask(__name__)
    
    @app.route('/')
    def index():
        return '这是一个首页'
    
    @app.route('/index/<int:user_id>',methods=)
    def welcome(user_id):
        return '欢迎我们的{}号选手登场'.format(user_id)
    
    if __name__ == '__main__':
        app.run(debug=True)
    
    

    通过postman调我们写的接口看下效果

    我们看到通过get请求已经获得我们想要的数据了,那么我们再看下post的方式可以用吗?

    我们看到接口返回了405,说是方法不被允许,这个时候就达到了我们的目的:限制用户的访问方式

    好了,这节就分享到这里,感谢关注微信公众号【测试开发萌货】

  • 相关阅读:
    Qt 查询字符串数据
    #include <stdint.h>
    滤波器设计-巴特沃尔斯低通滤波设计 转
    小波学习之二(单层一维离散小波变换DWT的Mallat算法C++实现优化)--转载
    机器学习之Bagging与随机森林笔记
    机器学习之决策树笔记
    机器学习之softmax回归笔记
    机器学习之逻辑回归(Logistic)笔记
    机器学习之模型拟合效果的判断笔记
    机器学习最小二乘法笔记
  • 原文地址:https://www.cnblogs.com/mengxinfeng/p/15466366.html
Copyright © 2011-2022 走看看