web專案026-----裝飾器的定義
裝飾器的定義
首先我們思考,我們應該以什麼樣的一個狀態進入到這個介面
肯定不能是直接輸入my.html
我們應該以登陸的狀態進入到這個介面,不登入不能進
我們需要做一個這個功能,驗證使用者是否登陸,如果沒有登陸就跳轉到登陸頁面
我們需要自己定義一個裝飾器
在commons.py中定義我們的裝飾器,因為他和業務邏輯沒有關係,是一個自定義工具,所以我們放到了utils檔案中的commons.py檔案中
我們把user_id儲存到全域性的g物件中,不存也可以,在session中取也行
我們在裝飾器中再匯入一個裝飾器,functools
舉個例子
functools的作用就是保持原函式的屬性
迴歸整體,這就是我們定義的裝飾器
# view_func---被裝飾的函式
def login_required(view_func):
@functools.wraps(view_func)
def wrapper(*args,**kwargs):
# 判斷使用者的登陸狀態,我們用user_id進行判斷
user_id = session.get('user_id')
if user_id is not None:
# 已登陸
g.user_id = user_id
return view_func(*args,**kwargs)
else:
# 未登入
return jsonify(errno=RET.SESSIONERR,errmsg='使用者未登陸')
return wrapper
相關文章
- koa大型web專案中使用路由裝飾器Web路由
- OpenHarmony定義元件重用樣式:@Styles裝飾器元件
- OpenHarmony裝飾指定自定義元件:@BuilderParam裝飾器元件UI
- Django 常用的自定義裝飾器Django
- python裝飾器2:類裝飾器Python
- Random 專案總結 -12 定義定時器,繫結事件random定時器事件
- python的裝飾器Python
- 裝飾器的使用
- 如何定義專案的成功標準?
- 使用 TypeScript 裝飾器裝飾你的程式碼TypeScript
- OpenHarmony自定義構建函式:@Builder裝飾器函式UI
- web實戰:裝飾表格Web
- 使用Web Component定義自己的專屬網頁元件Web網頁元件
- 使用 TypeScript 自定義裝飾器給類的方法增添監聽器 ListenerTypeScript
- Go 專案配置檔案的定義和讀取Go
- Python裝飾器:python真正入門的鑑定標準Python
- 設計模式專題(七)裝飾器模式設計模式
- Javascript裝飾器的妙用JavaScript
- JavaScript裝飾器的使用JavaScript
- Python中的裝飾器Python
- 類裝飾器
- JS裝飾器JS
- Python 裝飾器Python
- Python裝飾器Python
- python的裝飾器@的用法Python
- 使用 TypeScript 自定義裝飾器給類的屬性增添監聽器 ListenerTypeScript
- 基於hi-nginx的web開發(python篇)——路由裝飾器NginxWebPython路由
- 【Flask】路由裝飾器、路徑傳參、自定義路由轉換器Flask路由
- python中裝飾器的原理Python
- Python裝飾器的前世今生Python
- JavaScript中的裝飾器--DecoratorJavaScript
- pytest fixtures裝飾器的使用
- 採購專案管理:定義和流程專案管理
- 裝飾器與後設資料反射(1)方法裝飾器反射
- Javascrip—裝飾器(7)Java
- 1.5.3 Python裝飾器Python
- Python 裝飾器(一)Python
- react 理解裝飾器React