Python裝飾器模擬登入系統

2021-09-25 09:21:11 字數 2055 閱讀 8201

#裝飾器:

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裝飾器的好處就是在不用更改原函式的 前提下給函式增加新的功能。一般而言,我們要想拓展原來函式 最直接的辦法就是侵入 裡面修改,例如 這是我們最原始的的乙個函式,然後我們試圖記錄...