간단한 로그인 등록 인터페이스 얻기 플라스크 (b)

이 곳은 응용 프로그램의 경로에 대한 청사진을 사용하여 등록해야하기 때문에 식물의 기능의 사용, 청사진을 사용

복귀 또한 JSON 정보 인 JSON위한 데이터 수집 프런트 엔드

auth.py

수입 functools 

에서 플라스크 오기 ( 
    청사진 g, jsonify 요청, 세션 
) 
에서 werkzeug.security의 수입 check_password_hash, generate_password_hash 

에서 app.db 오기 get_db 

BP = 청사진 ( " 인증 " , __name__ , url_prefix = ' / 인증 ' ) 


@bp. 행 ( ' / 등록 " (= 방법 " GET " , " POST " ))
 DEF (레지스터)
    만약 request.method == ' POST ' : 
        stu_id = request.json [ ' stu_id ' ] 
        자명 = request.json [ ' 이름 ' ] 
        암호 = request.json [ ' 암호 ' ] 
        dB = get_db () 
        에러 = 없음 

        경우  되지 이름 : 
            오류 = ' 사용자 이름이 필요합니다. ' 
        ELIF  하지 비밀번호 : 
            오류 =' 비밀번호가 필요합니다. ' 
        ELIF db.execute (
                 ' SELECT는 사용자 이름 = 사용자의 stu_id? ' , (사용자 이름) 
        ) .fetchone는 () 입니다  하지 없음 : 
            오류 = ' 이미 등록 된 사용자 {}. ' .format (사용자 이름)
             반환 jsonify ({ ' MSG ' : ' 오류 ' })
         경우 오류가 없습니다 없음 : 
            db.execute ( 
                ' ??? INSERT INTO 사용자 (stu_id, 사용자 이름, 암호) 가치 (,,) ', 
                (stu_id, 사용자 이름, generate_password_hash (비밀번호)) 
            ) 
            db.commit () 

        반환 ({jsonify ' MSG ' : ' . 등록의 성공을 ' })
     반환 jsonify ({ ' MSG ' : 없음}) 


@ bp.route ( ' / 로그인 ' , = 메소드 ( " GET " , " POST " ))
 DEF 로그인 () :
     만약 request.method == ' POST ' : 
        stu_idrequest.json = [ ' stu_id ' ] 
        암호 = request.json [ ' 암호 ' ] 
        dB = get_db () 
        에러 = 없음 
        사용자 = db.execute (
             ' 사용자로부터 선택 * = WHERE stu_id를? ' , (stu_id) 
        ). 대하여 fetchone () 

        만약 사용자가 있다 : 없음 
            에러 = ' 잘못된 stu_id. ' 
        ELIF  하지 (사용자 [check_password_hash ' 암호 ', 패스워드) : 
            오류 = ' 잘못된 비밀번호. ' 
            돌아 jsonify ({ ' ERR은 ' : ' 로그인 실패 ' }) 

        경우 오류가 있습니다 : 없음 
            session.clear () 
            [세션 ' 이름 ' ] = 사용자 [ ' 이름 ' ]
             반환 jsonify ({ ' MSG ' : ' 로그인 성공. ' }) 

    반환 ({jsonify ' MSG를 ': 없음}) 


@ bp.before_app_request 
DEF load_logged_in_user () 
    stu_id =에 Session.get ( ' stu_id ' ) 

    경우 stu_id가 있다 : 없음 
        g.user = 없음
     다른 : 
        g.user = . get_db () 실행 (
             " 사용자로부터 SELECT * 없음 WHERE stu_id =? ' (stu_id는) 
        ) .fetchone () 


@ bp.route ( ' / 로그 아웃 ' )
 DEF : 로그 아웃 () 
    session.clear () 
    반환 ({jsonify ' MSG를 ': ' 로그 아웃 성공 ' })

등록을 완료하려면 여기에 로그인, 학습 과정은 나중에 수확을 기록됩니다

추천

출처www.cnblogs.com/freven/p/11932821.html