zoukankan      html  css  js  c++  java
  • Django views函数添加装饰器

    例如:FBV模式装饰器

    def add_decorator(add):
        def inner(*args, **kwargs):
            # 添加的函数逻辑  装饰部分
            a = add(*args, **kwargs)   # 被装饰函数
            return a
    
        return inner
    
    
    @add_decorator       # 装饰器
    def add(request):
        pass
    '''
    装饰器:
        检测任意一段代码的执行时间
    外部函数用来接受要装饰的函数(地址值)
    内部函数用来接受要装饰函数的参数
    '''
    import time
    
    def jisShi(f):
        def inner():
            a = time.time()
            f()
            b = time.time()
            print(b - a)
        return inner
    
    @jisShi
    def cheng():
        sum = 1
        for i in range(1,9999):
            sum *= i
    
    cheng()
    def outAdd(jia):     (函数名与@后面名称相同,括号内随意传参,代表的是“jia”函数)
        def inner(num,num2):
            print("****************")   ( 装饰内容)
            jia(num,num2)
        return inner
    
    @outAdd      (  @后面可写随意字母)
    def jia(num,num2):
        print(num+num2)
    jia(1,2)

     报错:

    ValueError: The view app.views.xxxxxx didn't return an HttpResponse object. It returned None inst

    解决:

    缺少return,加一个return a 即可

    参考文档:

    http://www.manongjc.com/detail/9-dzwgvycyscclxyf.html

  • 相关阅读:
    boot.asm
    C talk
    C 数据类型
    Locks, Deadlocks, and Synchronization
    C++的RTTI 观念和用途
    setup.asm
    驱动对象设备对象设备栈
    JNI 内存泄漏
    KMP 字符串匹配算法
    解开 Windows 下的临界区中的代码死锁
  • 原文地址:https://www.cnblogs.com/yu121/p/14775018.html
Copyright © 2011-2022 走看看