装饰器

#encoding: utf-8

from functools import wraps

user = {

    'is_login': True

}

def login_required(func):

    @wraps(func)

    def wrapper(*args,**kwargs):

        if user['is_login'] == True:

            return func(*args,**kwargs)

        else:

            print('没有登录,跳转到首页')

    return wrapper

class Flask(object):

    def __init__(self):

        self.url_view_maps = {}

    def route(self,url):

        def outter_wrapper(func):

            self.url_view_maps[url] = func.__name__

            @wraps(func)

            def inner_wrapper(*args,**kwargs):

                func(*args,**kwargs)

            return inner_wrapper

        return outter_wrapper

    def run(self):

        while True:

            url = input('请输入网址:')

            view_func = self.url_view_maps.get(url)

            if view_func:

                exec(view_func+"()")

            else:

                print('抱歉,您访问的页面不存在')

app = Flask()

@app.route('/')

def index():

    print('index page')

@app.route('/list/')

def article_list():

    print('article list')

@app.route('/edit/')

@login_required

def edit_user():

    print('更改用户名成功~!')

if __name__ == '__main__':

    app.run()

你可能感兴趣的:(装饰器)