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的所有方法预加载了这个装饰器,



  • 相关阅读:
    React后台管理系统-商品管理列表组件
    React后台管理系统-商品列表搜索框listSearch组件
    React后台管理系统-table-list组件
    React后台管理系统-用户列表页面
    React后台管理系统- rc-pagination分页组件封装
    React后台管理系统-登录页面
    React后台管理系统-首页Home组件
    React后台管理系统-后台接口封装
    ThreadLocal的原理、作用、使用弱引用原因、应用举例
    N皇后问题的递归与非递归解法
  • 原文地址:https://www.cnblogs.com/bayueman/p/6609554.html
Copyright © 2011-2022 走看看