裝飾器

#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('沒有登錄,跳轉(zhuǎn)到首頁')

? ? 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('請輸入網(wǎng)址:')

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

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 裝飾是為函數(shù)和類指定管理代碼的一種方式.裝飾器本身的形式是處理其他的可調(diào)用對象的可調(diào)用的對象。 函數(shù)裝飾器在函數(shù)定...
    低吟淺唱1990閱讀 296評論 0 0
  • 每個(gè)人都有的內(nèi)褲主要功能是用來遮羞,但是到了冬天它沒法為我們防風(fēng)御寒,咋辦?我們想到的一個(gè)辦法就是把內(nèi)褲改造一下,...
    chen_000閱讀 1,405評論 0 3
  • Python裝飾器的高級用法(翻譯) 原文地址https://www.codementor.io/python/t...
    城南道閱讀 4,875評論 1 22
  • www.yunxcloud.cn 首先要明白裝飾器是用來給函數(shù)增加額外功能的。 常用的工具函數(shù) import ti...
    彩色系閱讀 1,103評論 0 1
  • 1、主色調(diào)紅色與logo圖相呼應(yīng),主色調(diào)即為紅色,但實(shí)際上除了導(dǎo)航欄紅色在其他地方比較少 2、頂部按鈕切換,可以滑...
    仲神秀閱讀 271評論 0 0

友情鏈接更多精彩內(nèi)容