装饰器

#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()

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 装饰是为函数和类指定管理代码的一种方式.装饰器本身的形式是处理其他的可调用对象的可调用的对象。 函数装饰器在函数定...
    低吟浅唱1990阅读 1,573评论 0 0
  • 每个人都有的内裤主要功能是用来遮羞,但是到了冬天它没法为我们防风御寒,咋办?我们想到的一个办法就是把内裤改造一下,...
    chen_000阅读 5,142评论 0 3
  • Python装饰器的高级用法(翻译) 原文地址https://www.codementor.io/python/t...
    城南道阅读 10,226评论 1 22
  • www.yunxcloud.cn 首先要明白装饰器是用来给函数增加额外功能的。 常用的工具函数 import ti...
    彩色系阅读 4,594评论 0 1
  • 1、主色调红色与logo图相呼应,主色调即为红色,但实际上除了导航栏红色在其他地方比较少 2、顶部按钮切换,可以滑...
    仲神秀阅读 1,599评论 0 0