Flask进阶

Posted python测试资源分享

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Flask进阶相关的知识,希望对你有一定的参考价值。

flask进阶<三>

1.flask设计模式采用MVC模式

  • Model:处理数据相关逻辑

  • View:返回内容展示

  • Control:负责转发请求,对请求进行处理

2.run方法参数

  • debug:调试模式。

    •    作用:1.可以重启服务器2.可以打印错误信息

  • host:'0.0.0.0' 代表所有人可访问,'127.0.0.1'代表本地访问

  • port:默认5000,可自行设置

3.服务启动方式

  • 通过run方法启动

  • 命令行启动:set  FLASK_APP=filename;flask   run

4.路由

  • 路由访问特性:多个路由可访问同一个视图,叠加装饰器即可,路由装饰器必须放在最上面,其他装饰器放在路由装饰器下面,例如:

    @app.route('/hello')@app.route('/')

    @time

    def index():    

        return render_template('index.html')

    app.run()

  • 路由值传递

    1. 方式一:直接在装饰器后添加参数再传递给视图,例如下面的id:

      @app.route('/case/<id>')

      def index(id):    

           return F'{id}'

    2. 方式二:通过request获取后传递给返回值,例如:

      @app.route('/case')

      def index( ):    

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

          return F'{id}'

    3. 参数类型:int/string/float/path,例如:

      @app.route('/case/<int:id>')

      def index(id):

      return F'{id}'

  • 路由重定向

    1. flask哲学:/case     和/case/    是两个不同的url

    2. 手动重定向:

      第一种方式在@app.route()加上redirect_to参数

      第二种方式:在返回值上重定向

  • 路由注册

    1. 单个装饰器注册

    2. 集中注册机制,一般较大项目时候使用app.add_url_rule('/',view_func=index)

  • 装饰器路由的参数

    1. 端点:endpoint,默认端点名为函数名,每注册一次会添加到map函数里

    2. 请求方法:method,值为列表,指定前端请求方法

    3. 默认值:defaults,用于传递值给视图函数(也可以直接再视图函数指定默认参数)例如:@app.route('/',defaults={'id':3})等价于def index(id=3)

  • 视图函数分离

    1. 将路由,视图,app对象分离,实现分层

    2. 分离过程中需注意导入顺序,防止循环导入。



以上是关于Flask进阶的主要内容,如果未能解决你的问题,请参考以下文章

Flask进阶

Flask快速入门与进阶

flask 2 进阶

Flask进阶

python3-开发进阶Flask的基础

Flask Web开发实战(入门进阶与原理解析)