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

  • 相关阅读:
    String ,StringBuilder, StringBuffer
    apt-get方式删除软件
    curl命令的使用
    maven自动部署测试Web应用
    几个重要的maven命令
    linux中默认jdk的配置
    登录注册的页面制作
    运用php做投票题,例题
    复选框式查询 例题租房子
    会话用法 和留言板例题
  • 原文地址:https://www.cnblogs.com/yu121/p/14775018.html
Copyright © 2011-2022 走看看