목차
아이디어:
백엔드 개발 파이썬 튜토리얼 로그인 창 작성을 위한 구체적인 단계에 대한 자세한 설명

로그인 창 작성을 위한 구체적인 단계에 대한 자세한 설명

Jun 20, 2017 pm 01:47 PM
로그인 창문 쓰다

아이디어:

1. 이 과제에서는 Linux 로그인 인증 프로세스를 참조하고 온라인 뱅킹, Alipay 및 기타 잠금 규칙을 결합했습니다.

1) 인증 프로세스는 Linux 로그인을 나타냅니다. 사용자 입력을 마치면 비밀번호를 입력한 후 사용자 이름이 존재하는지, 사용자가 잠겨 있는지 확인한 후 비밀번호가 맞는지 확인하세요. 사용자 이름이나 비밀번호가 틀렸는지 알려주므로 무차별 대입 크래킹 가능성이 높아집니다. 난이도

2) 잘못된 입력 횟수 계산 및 잠금 에 대해서는 은행 및 Alipay의 관행을 참고합니다. , 즉 그들은 잘못 입력한 횟수 에만 관심이 있으며 올바른 항목을 몇 번 입력했는지가 아닙니다. 즉, 두 번 잘못 입력하고 세 번째 잘못 입력했으며 이전 개수는 다음과 같습니다. 삭제되지 않았습니다 즉, 오늘 1,000번 입력하고 997번 잘못 입력했지만 3번만 잘못 입력했기 때문에 죄송합니다. 그래도 잠가야 합니다. 그리고 세 개의 잘못된 항목이 연속될 필요는 없습니다. 3번 잘못 입력하면 잠깁니다.

2. 카운트 및 상태 저장과 관련하여 파일을 통해 유지하는 것을 고려합니다. 잘못된 입력 수의 누적 및 잠금은 파일에 저장됩니다. 프로그램의 신뢰성이 보장되므로 프로그램이 종료되어도 카운트는 여전히 유효합니다. 파일 형식은 다음과 같습니다.

alex sb lock 3
Tom 666 Unlock 0
geng 888 Unlock 2

첫 번째 열은 사용자 이름, 두 번째 열은 비밀번호, 세 번째 열은 사용자 상태(lock은 lock을 나타내고, Unlock은 잠금 없음을 의미함), 네 번째 열은 로그인 수입니다(실제로 오류가 있는 경우 로그인 수는 1씩만 증가하면 되며, 오류가 있는 경우 무시됩니다. 오류 없음).

코드는 다음과 같습니다.

           with open(filename,)           key,values                           lines =                print(             f.write( .join(lines) +                           values.insert(             f.write( .join(values) +   # messages = {:[,,],:[,,],:[,, # write_file(messages,   __name__ ==      active =               username = input(         users_dict = {}     #用户字典,用于存放用户的信息,键-用户名,值-         with open(,)              lines =              line                  user_list =                 users_dict[user_list[]] = user_list[           username               users_dict[username][] ==                  print(                                (users_dict[username][]) <                      user_pwd = input(                      users_dict[username][] ==                         print(                                               (users_dict[username][]) !=                              print( % ( - (users_dict[username][                         users_dict[username][] = (users_dict[username][]) +                                        print(                     users_dict[username][] =                      users_dict[username][] =                      write_file(users_dict,         elif username ==                         print()
运行结果如下:
请输入你的用户名(输入quit退出):tom
请输入密码:22
还有2次机会,用户将被锁定!
请输入密码:22
还有1次机会,用户将被锁定!
请输入密码:22
对不起,您输入的次数过多,你的用户名已经被锁定,请联系管理员!
请输入你的用户名(输入quit退出):alex
您输入的用户名已经锁定,请联系管理员!
로그인 후 복사

실제로 파일의 작업은 본질적으로 문자열 목록, 사전, 파일 작업, 파일을 읽는 방법, readlines( ) 작업입니다. 한 줄씩 읽어서 목록으로 저장하고, dict(사전)은 사용자 정보를 기록하는 데 사용됩니다. 스트링 스플라이싱(join) 방식(" ".join(list))은 문자열과 리스트를 스플라이싱하여 새로운 문자열을 형성한다. 실제로 파이썬에 저장되는 문자열의 본질은 리스트(Storage), 스플라이싱(Splicing) 형태이다. 목록 사이, list.extend(list), 목록 사이 접합.

코드 설명:

1. 여기서는 오늘 강좌에서 다루지 않은 두 가지 내용인 사전과 함수를 사용합니다. 사용자 정보를 사전에 저장하는 목적은 사용자 이름이 존재하는지 확인하는 것입니다. 는 사전의 키로 직접 사용되며, 그 외의 정보는 사전의 값으로 사용되어 해당 키에 일대일로 대응합니다. 이렇게 사용자명 존재 여부를 판단할 때는 in만 사용하면 됩니다.

2. 코드의 61행과 62행은 파일을 사전으로 변환하는 프로세스를 완료합니다.

원본 Zhang Xiaoyu 코드 예:

#!/usr/bin/env python3
# coding:utf-8'''Created on: 2015年12月29日

@author: 张晓宇

Email: 61411916@qq.com

Version: 1.0Description: 输入用户名密码,认证成功显示欢迎信息,认证失败,输错三次后锁定

Help:'''import os
# 定义用户信息写入函数,用于把用户信息写回文件
def write_to_account_file(accounts,account_file_path):"""accounts是一个用户信息字典,目的是把变更过的信息写入文件中"""account_file = open(account_file_path,"w")for key,val in accounts.items():
        line = []
        line.append(key)
        line.extend(val)
        print(" ".join(line))      #字符串与列表拼接,目的是实现列表中每个元素加空格生成一个字符串如a b c d格式
        account_file.write(" ".join(line) + "\n")    #往文件中添加信息
    account_file.close()   #直接打开文件的时候一定要记得关闭文件,以免文件休息丢失if __name__ == '__main__':'''    @parameters:
        account_file_path:账户文件
        password_col_num:账户文件中密码所在的列(从0开始)
        status_col_num:账户文件中账户状态所在的列(从0开始)
        error_count_num:账户文件中输入错误次数所在的列(从0开始)
        app_info:系统信息,用户启动应用后的输出
        welcome_msg:用户成功登录后的信息'''    account_file_path = 'account.db'password_col_num = 1status_col_num = 2error_count_num = 3app_info = '''    +---------------------------------+
    | Welcome to gcx system           |
    | Version:2.0                     |
    | Author:zhuzhu                   |
    +---------------------------------+'''    welcome_msg = "Welcome %s,authentication is successful!"if os.path.exists(account_file_path):    #os.path.exists()判断文件是否存在,返回布尔值
    # 判断账户文件是否存在
        account_file = open(account_file_path,"r")else:
        #文件不存在,看系统是否有误
        print("Error:Account file 'account.db' is not exit,please check!")
        exit(1)

    #读账户文件
    accounts = {}for line in account_file.readlines():   #按行读取文件
        account = line.strip().split()      #清楚空格后进行分列,生成一个列表
        accounts[account[0]] = account[1:]"""把列表中的第一个元素(用户名)当做键,用户的其他信息当做值,组成键值对存放在字典中""""""account[0]键,account[1:]是值"""account_file.close()    #关闭文件
    flag = Truewhile flag:
        print(app_info)
        #输入用户名
        username = input("Username(Enter quit to exit): ").strip()
        #判断用户是否输入的为quitif username == "quit":
            #是则退出循环,程序结束breakpassword = input("Password: ").strip()
        #判断用户名是否存在if username not in accounts.keys():
            #不存在提示错误信息并退出当前循环让用户重新输入
            print("Error:Username or Password it is error!")continue     #结束本次循环,让用户再次输入用户名和密码,继续执行下一次循环if accounts[username][status_col_num - 1] == "lock":
            #如果被锁定退出当前循环让用户重新输入
            print("Error:Account is locked.Please contact the administrator!")continue    #跳过本次循环,让用户重新输入进行验证,这个可以避免很多缩进,能够继续执行下一次
        #判断用户密码是否正确if password == accounts[username][password_col_num - 1]:
            #正确显示欢迎信息
            print(welcome_msg %username)breakelse:
            #用户密码不正确的情况
            #提示用户名或密码错误
            print("Error:Username or Password it is error!")
            #输入错误次数加1
            accounts[username][error_count_num - 1] = str(int(accounts[username][error_count_num - 1]) + 1)
            #判断是否已经达3次if int(accounts[username][error_count_num - 1 ]) == 3:
                #如果输入错误达到3次
                #提示账户将被锁定
                print("Error: This account will be locked,Please contact the administrator!System will be exit!")
                #将用户状态改为lock并写入文件
                accounts[username][status_col_num - 1] == "lock"write_to_account_file(accounts,account_file_path)breakwrite_to_account_file(accounts,account_file_path)
로그인 후 복사

위 코드의 하이라이트:

(1) 계속: 이 루프를 종료하면 사용자가 다시 입력할 수 있도록 하는 목적을 달성하기 위해 계속 이후의 코드가 실행되지 않습니다. 사용자가 등록을 선택하거나 웹페이지를 닫을 때까지

(2) 문서는 비교적 잘 표준화되어 있으며 설명이 있습니다.

(3) 파일을 한 줄씩 읽은 다음 파일에 씁니다. 한 줄씩 수정하는 동안 목록과 사전에 대한 지식을 사용하세요.

(4) " ".join(list) 문자열과 목록을 연결하여 새 문자열을 생성합니다.

(5) 문자열 분할; 확장() 목록 간 연결.

위 내용은 로그인 창 작성을 위한 구체적인 단계에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

wallpaperengine에서 다른 계정으로 로그인한 후 다른 사람의 배경화면을 다운로드하면 어떻게 해야 하나요? wallpaperengine에서 다른 계정으로 로그인한 후 다른 사람의 배경화면을 다운로드하면 어떻게 해야 하나요? Mar 19, 2024 pm 02:00 PM

귀하의 컴퓨터에서 다른 사람의 Steam 계정에 로그인하고 그 다른 사람의 계정에 우연히 배경화면 소프트웨어가 있는 경우, Steam은 자신의 계정으로 다시 전환한 후 다른 사람의 계정에 구독된 배경화면을 자동으로 다운로드합니다. 스팀 클라우드 동기화를 끄세요. 다른 계정에 로그인한 후 wallpaperengine이 다른 사람의 배경화면을 다운로드하는 경우 해결 방법 1. 자신의 Steam 계정에 로그인하고 설정에서 클라우드 동기화를 찾아 Steam Cloud 동기화를 끄세요. 2. 이전에 로그인했던 다른 사람의 Steam 계정으로 로그인하여 Wallpaper Creative Workshop을 열고 구독 콘텐츠를 찾은 다음 모든 구독을 취소하세요. (나중에 배경화면을 찾을 수 없는 경우 먼저 수집한 후 구독을 취소할 수 있습니다.) 3. 자신의 스팀으로 다시 전환합니다.

Xiaohongshu의 이전 계정에 어떻게 로그인하나요? 재연결 후 원래 번호가 분실된 경우 어떻게 해야 하나요? Xiaohongshu의 이전 계정에 어떻게 로그인하나요? 재연결 후 원래 번호가 분실된 경우 어떻게 해야 하나요? Mar 21, 2024 pm 09:41 PM

소셜 미디어의 급속한 발전으로 Xiaohongshu는 많은 젊은이들이 자신의 삶을 공유하고 신제품을 탐색할 수 있는 인기 플랫폼이 되었습니다. 사용 중에 때때로 사용자가 이전 계정에 로그인하는 데 어려움을 겪을 수 있습니다. 이 글에서는 Xiaohongshu의 기존 계정에 로그인하는 문제를 해결하는 방법과 바인딩 변경 후 원래 계정을 잃을 가능성에 대처하는 방법에 대해 자세히 설명합니다. 1. Xiaohongshu의 이전 계정에 어떻게 로그인하나요? 1. 비밀번호를 찾아 로그인하세요. 장기간 Xiaohongshu에 로그인하지 않으면 시스템에 의해 계정이 재활용될 수 있습니다. 접근 권한을 복원하려면 비밀번호를 검색하여 계정에 다시 로그인해 보세요. 작업 단계는 다음과 같습니다. (1) Xiaohongshu 앱이나 공식 웹사이트를 열고 "로그인" 버튼을 클릭합니다. (2) "비밀번호 찾기"를 선택하세요. (3) 회원가입 시 사용한 휴대폰 번호를 입력하세요.

Discuz 백그라운드 로그인 문제 해결 방법 공개 Discuz 백그라운드 로그인 문제 해결 방법 공개 Mar 03, 2024 am 08:57 AM

Discuz 백그라운드 로그인 문제에 대한 해결책이 공개되었습니다. 인터넷의 급속한 발전으로 인해 웹 사이트 구축이 점점 보편화되고 있으며 일반적으로 사용되는 포럼 웹 사이트 구축 시스템으로 Discuz가 선호되고 있습니다. 많은 웹마스터. 그러나 강력한 기능으로 인해 Discuz를 사용할 때 백그라운드 로그인 문제와 같은 몇 가지 문제가 발생할 수 있습니다. 오늘은 Discuz 백그라운드 로그인 문제에 대한 해결책을 공개하고 구체적인 코드 예시를 제공하여 도움이 필요한 분들에게 도움이 되기를 바라겠습니다.

'음양사' 이바라키 도지 컬렉션 스킨은 로그인하자마자 획득 가능하며, 새로운 Zen Heart Cloud Mirror 스킨도 곧 출시됩니다! '음양사' 이바라키 도지 컬렉션 스킨은 로그인하자마자 획득 가능하며, 새로운 Zen Heart Cloud Mirror 스킨도 곧 출시됩니다! Jan 05, 2024 am 10:42 AM

산과 들에서 수천 명의 귀신이 비명을 지르고, 무기 교환 소리가 사라졌다. 투혼을 불태우며 산을 뛰어넘은 귀신장수들은 불을 나팔 삼아 수백 명의 귀신을 이끌고 돌격했다. 전투에. [타오르는 불꽃 바이렌·이바라키 도지 콜렉션 스킨 출시] 유령뿔은 불꽃으로 타오르고, 금빛 눈은 거침없는 투지를 터뜨리고, 백옥 갑옷 조각이 셔츠를 장식하여 거침없고 거친 대왕의 기세를 보여줍니다. 악마. 순백색의 나풀거리는 소매에는 붉은 불꽃이 달라붙어 얽혀 있고, 그 위에 금색 문양이 새겨져 진홍빛과 마법의 색을 발산했다. 응축된 악마의 힘으로 형성된 의지의 포효가 울부짖고, 맹렬한 불길이 산을 뒤흔들었다. 연옥에서 돌아온 악마와 유령들이 함께 침입자들을 처단하자. [전용 다이내믹 아바타 프레임·불꽃 바이리안] [전용 일러스트·불꽃 장군의 영혼] [약력 감상] [획득 방법] 이바라키 도지 컬렉션 스킨·불꽃 바이리안은 12월 28일 점검 후 스킨 스토어에서 만나보실 수 있습니다.

매번 새 창을 열도록 Chrome을 설정하는 방법 매번 새 창을 열도록 Chrome을 설정하는 방법 Mar 06, 2024 pm 06:19 PM

매번 새 창을 열도록 Chrome을 설정하는 방법은 무엇입니까? 악의적인 사용자는 Chrome을 안전하고 빠르며 편리하게 사용하는 것을 좋아합니다. 사용자마다 브라우저 사용에 대한 선호도가 다릅니다. 일부 사용자는 빠른 검색을 위해 Chrome을 새 창으로 여는 것을 좋아합니다. 그것을 설정합니다. 다음으로, 편집기는 Chrome을 열 때마다 새 창 설정에 대한 튜토리얼을 제공합니다. 관심 있는 친구들이 와서 배울 수 있습니다. Google 크롬을 열 때마다 새 창을 설정하는 방법에 대한 튜토리얼 1. 컴퓨터 바탕 화면에서 Google 크롬을 두 번 클릭하여 연 다음 오른쪽 상단에 있는 [점 3개] 아이콘을 클릭합니다. 2. [설정] 옵션을 찾아 해당 페이지로 들어갑니다(그림 참조). 3. 구글 크롬으로 이동

Kuaishou PC 버전 로그인 방법 - Kuaishou PC 버전 로그인 방법 Kuaishou PC 버전 로그인 방법 - Kuaishou PC 버전 로그인 방법 Mar 04, 2024 pm 03:30 PM

최근 몇몇 친구들이 Kuaishou 컴퓨터 버전에 로그인하는 방법을 물었습니다. Kuaishou 컴퓨터 버전의 로그인 방법은 다음과 같습니다. 도움이 필요한 친구들이 와서 자세히 알아볼 수 있습니다. 1단계: 먼저 컴퓨터 브라우저에서 Baidu의 Kuaishou 공식 웹사이트를 검색하세요. 2단계: 검색 결과 목록에서 첫 번째 항목을 선택합니다. 3단계: Kuaishou 공식 웹사이트 메인 페이지에 들어간 후 비디오 옵션을 클릭하세요. 4단계: 오른쪽 상단에 있는 사용자 아바타를 클릭하세요. 5단계: 팝업 로그인 메뉴에서 QR 코드를 클릭하여 로그인하세요. 6단계: 그런 다음 휴대폰에서 Kuaishou를 열고 왼쪽 상단에 있는 아이콘을 클릭하세요. 7단계: QR 코드 로고를 클릭하세요. 8단계: 내 QR 코드 인터페이스 오른쪽 상단에 있는 스캔 아이콘을 클릭한 후 컴퓨터에서 QR 코드를 스캔하세요. 9단계: 마지막으로 Kuaishou의 컴퓨터 버전에 로그인합니다.

Quark에서 두 장치에 로그인하는 방법 Quark에서 두 장치에 로그인하는 방법 Feb 23, 2024 pm 10:55 PM

Quark Browser를 사용하여 두 장치에 로그인하는 방법은 무엇입니까? Quark Browser는 동시에 두 장치에 로그인하는 것을 지원하지만 대부분의 친구는 Quark Browser를 사용하여 두 장치에 로그인하는 방법을 모릅니다. 다음으로 편집기는 사용자가 Quark에 로그인하도록 합니다. 두 가지 장치에 대한 방법 그래픽 튜토리얼, 관심 있는 사용자가 와서 살펴보세요! Quark Browser 사용 튜토리얼 Quark 두 장치에 로그인하는 방법 1. 먼저 Quark Browser 앱을 열고 메인 페이지에서 [Quark Network Disk]를 클릭합니다. 2. 그런 다음 Quark Network Disk 인터페이스에 들어가서 [My Backup] 서비스 기능을 선택합니다. 3. 마지막으로 [장치 전환]을 선택하여 두 개의 새로운 장치에 로그인합니다.

Xiaohongshu가 계정만 기억하는 경우 어떻게 로그인하나요? 내 계정을 검색하는 방법만 기억나요? Xiaohongshu가 계정만 기억하는 경우 어떻게 로그인하나요? 내 계정을 검색하는 방법만 기억나요? Mar 23, 2024 pm 05:31 PM

Xiaohongshu는 이제 많은 사람들의 일상생활에 자리잡았고, 풍부한 콘텐츠와 편리한 조작 방법으로 인해 사용자들은 이를 즐기고 있습니다. 가끔 계정 비밀번호를 잊어버릴 때가 있는데, 계정만 기억하고 로그인이 안 되는 것이 정말 짜증나는 일입니다. 1. Xiaohongshu가 계정만 기억하는 경우 어떻게 로그인하나요? 비밀번호를 잊어버린 경우 휴대폰의 인증코드를 통해 Xiaohongshu에 로그인할 수 있습니다. 구체적인 작업은 다음과 같습니다. 1. Xiaohongshu 앱 또는 Xiaohongshu 웹 버전을 엽니다. 2. "로그인" 버튼을 클릭하고 "계정 및 비밀번호 로그인"을 선택합니다. 3. "비밀번호를 잊으셨나요?" 5. 시스템에서 휴대폰으로 인증 코드를 전송하고, 인증 코드를 입력한 후 '확인'을 클릭하세요. 제3자 계정(예:

See all articles