zoukankan      html  css  js  c++  java
  • 路由系统

    典型写法
    @app.route('/detail/<int:id>', methods=['GET'], endpoint='detail')
    
    默认转换器

    DEFAULT_CONVERTERS = {
    'default': UnicodeConverter,
    'string': UnicodeConverter,
    'any': AnyConverter,
    'path': PathConverter,
    'int': IntegerConverter,
    'float': FloatConverter,
    'uuid': UUIDConverter,
    }

    路由系统的本质
    decorator = @app.route('/', methods=["GET", "POST"], endpoint='s1')
    def route(self, rule, **options):
        def decorator(f):
            endpoint = options.pop("endpoint", None)
            self.add_url_rule(rule, endpoint, f, **options)
            return f
    
        return decorator
    @decorator
        decorator(index)
        
    # 同理
    def login():
        return "登录"
    app.add_url_rule('/index', endpoint='s1', login, methods=["GET", "POST"])
    # 与django路由类似
    # Django与flask路由基于装饰器,本质是基于add_url_rule
    # endpoint随便取,但是不能重复,一旦重复就报错,如果不传加装饰器会有问题
    # add_url_rule 源码中endpoint如果是为空,endpoint = _endpoint_from_view_func(view_func),最终取return view_func.__name__
    
    from flask import Flask, jsonify
    
    app = Flask(__name__)
    
    
    @app.route('/', endpoint='index', methods=['GET'])
    def index():
        return jsonify(
            {
                "name": "xxx",
                'age': 21
            }
        )
    
    
    # app.add_url_rule('/', view_func=index, endpoint='index')
    
    if __name__ == '__main__':
        app.run()
    
    
  • 相关阅读:
    Python中使用MongoEngine
    Python中MongoDB使用
    JAVA 日期相关API (JDK 8 新增)
    JAVA 日期相关API(JDK 8 之前)
    StringBuffer 和StringBuilder
    String 类型转换
    String类常用方法
    JAVA String类
    关于线程锁的释放和保留
    java线程同步--使用线程池
  • 原文地址:https://www.cnblogs.com/ShenJunHui6/p/11219476.html
Copyright © 2011-2022 走看看