#裝飾器:
import time
import random
islogin = false
dict1 =
def random_number(n):
list1 = ['0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z']
code = ''
for i in range(n):
code += random.choice(list1)
return code
def write_down():
print('您正在註冊——————————')
time.sleep(0.5)
while true:
user_name = input('請輸入使用者名稱:')
user_password = input('請輸入密碼:')
user_password_again = input('請確認密碼:')
#a = random_number(random.randint(4,7))
b = random.randint(4,7)
a = random_number(b)
print('驗證碼為:%s'%a)
yan = input('請輸入驗證碼:')
if user_password != user_password_again:
print('密碼錯誤,請重新註冊!')
continue
if yan != a :
print('驗證碼錯誤,請重新註冊!')
continue
dict1[user_name] = user_password
print('註冊成功,即將跳轉登入系統..........')
break
def login():
print('您正在登入系統————————————')
time.sleep(0.5)
global islogin
while true:
user_name = input('請輸入使用者名稱:')
user_password = input('請輸入密碼:')
#if dict1.get(user_name) == user_password:
if dict1.get(user_name,1) == user_password:
print('登入成功!')
islogin = true
break
else :
print('密碼錯誤,請重新登入!')
islogin = false
time.sleep(1)
def login_required(func):
#驗證使用者是否登入
while true:
if islogin :
func(*args,**kargs)
break
else :
print('需登入才可付款:',' 已經擁有賬號請輸入y',' 需要註冊請輸入n',sep = '\n')
s = input('y or n:')
s = s.lower()
if s == 'y' :
login()
continue
else :
write_down()
time.sleep(1.5)
login()
@login_required
def pay():
money = input('您要付款多少元?:')
print('正在付款,金額為{}'.format(money))
print('正在付款......')
time.sleep(1.5)
print('付款成功!')
pay()
登入的裝飾器
def login decorator func 這個函式是乙個登入驗證的裝飾器,它還包含了對ajax登入的驗證 param func func是對誰去裝飾,這個引數是被裝飾的乙個函式 return 裝飾器裝飾過後,返回的乙個新功能函式 def login handler request,args,...
Python之Flask登入認證 裝飾器
from flask import flask,render template,request,response,redirect,session,url for usrs 2 3 4 redirect to 重定向到另乙個頁面 subdomain admin 子網域名稱 請求相關的全部在reque...
python裝飾器 Python 裝飾器
簡言之,python裝飾器就是用於拓展原來函式功能的一種函式,這個函式的特殊之處在於它的返回值也是乙個函式,使用python裝飾器的好處就是在不用更改原函式的 前提下給函式增加新的功能。一般而言,我們要想拓展原來函式 最直接的辦法就是侵入 裡面修改,例如 這是我們最原始的的乙個函式,然後我們試圖記錄...