栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Flask的工厂模式与路由

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Flask的工厂模式与路由

设计模式:

设计模式是由GoF(Gang of Four)首先提出的, 设计模式就是解决特定问题的解决方案. 它本身是一种发现总结, 而不是一种发明.
GoF在设计模式的书中给出了23中涉及模式, 共分为三大类:
- 创建型模式
- 结构型模式
- 行为型模式

工厂模式:

工厂模式, 在于提供一个"工厂", 负责创建其他类型对象, 客户端使用某些参数调用此方法之后, 工厂会据此创建所需类型的对象, 然后将它们返回给客户端.
简单工厂模式, 允许接口创建对象, 但不会暴露对象的创建逻辑.

通俗点:
提供一个工厂类,来创建一种类对象,不能创建其他类对象,使用者只需要传
递工厂类需要的参数即可返回想要的结果,不用关心工厂类的具体实现

工厂模式应用
  • 定义工厂方法

    • def create_flask_app(config):
          # 定义工厂方法
          app = Flask(__name__)
          # 从配置对象中加载
          app.config.from_object(config)
      
          return app ```
      
      
  • 创建接口文件

    • # 导入工厂方法 from factory_flask import create_flask_app from settings import ConnectMysql
      
      app = create_flask_app(ConnectMysql)
      
      # 设置路由与视图 @app.route('/') def index():
          mysql_port = app.config.get('MYSQL_HOST')
          print(mysql_port)
          return 'Hello Flask'
      
      # 启动服务 if __name__ == '__main__':
          # url_map:获取所有路由
          print(app.url_map)
          app.run() ```
      
      
路由
# 默认的参数类型是str
@app.route('/book/')
@app.route('/book/')
路径转换器
# 路径转换器的值可以传递一个路由,值是str类型
@app.route('/book//')
自定义转换器
from werkzeug.routing import BaseConverter

class PhoneConverter(BaseConverter):
    # 自定义转换器的路由配置规则
    # 重写regex 
    regex = r'1[3-9]d{9}'

# 把转换器写入到url__map
# 给自定义的转化器指定使用的key
app.url_map.converters['mobile']=PhoneConverter

# 使用案例
@app.route('/user/')
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/925844.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号