zoukankan      html  css  js  c++  java
  • @setupmethod -- flask.setupmethod

    源码: 

    def setupmethod(f):
    """Wraps a method so that it performs a check in debug mode if the
    first request was already handled.
    """
    def wrapper_func(self, *args, **kwargs):
    if self.debug and self._got_first_request:
    raise AssertionError('A setup function was called after the '
    'first request was handled. This usually indicates a bug '
    'in the application where a module was not imported '
    'and decorators or other functionality was called too late. '
    'To fix this make sure to import all your view modules, '
    'database models and everything related at a central place '
    'before the application starts serving requests.')
    return f(self, *args, **kwargs)
    return update_wrapper(wrapper_func, f)
    作用: 该对象是一个装饰器。目的是校验Flask实例是否开启了debug模式并且获取第一个请求(从字面理解),如果是这样则报错。
    其中调用functools的 update_wrapper ()

    WRAPPER_ASSIGNMENTS = ('__module__', '__name__', '__doc__')
    WRAPPER_UPDATES = ('__dict__',)
    def update_wrapper(wrapper,
    wrapped,
    assigned = WRAPPER_ASSIGNMENTS,
    updated = WRAPPER_UPDATES):
    """Update a wrapper function to look like the wrapped function

    wrapper is the function to be updated
    wrapped is the original function
    assigned is a tuple naming the attributes assigned directly
    from the wrapped function to the wrapper function (defaults to
    functools.WRAPPER_ASSIGNMENTS)
    updated is a tuple naming the attributes of the wrapper that
    are updated with the corresponding attribute from the wrapped
    function (defaults to functools.WRAPPER_UPDATES)
    """
    for attr in assigned:
    setattr(wrapper, attr, getattr(wrapped, attr))
    for attr in updated:
    getattr(wrapper, attr).update(getattr(wrapped, attr, {}))
    # Return the wrapper so this can be used as a decorator via partial()
    return wrapper




    对flask.app的所有方法预加载了这个装饰器,



  • 相关阅读:
    系统结构实践——第一次作业
    个人作业——软件工程实践总结作业
    个人作业——软件评测
    软件工程第五次作业--结队编程
    软件工程第四次作业--结队作业
    第一次个人编程作业
    第一次软工作业
    java第五周上机练习
    Java作业5
    java4
  • 原文地址:https://www.cnblogs.com/bayueman/p/6609554.html
Copyright © 2011-2022 走看看