플라스크 로그인 및 SQLALCHEMY- 사용자 로그인, 인증 시스템

사용자 로그인 및 인증 시스템으로 응용 프로그램을 구축하는 것은 현재 웹 3.0 시대의 기본 기능입니다. 플라스크 로그인을 사용하여 배우십시오

사용자 기반 및 고객 중심은 오늘날의 비즈니스 모델에서 매우 인기가 있습니다. Web 2.0 외에도 Web 3.0은 탈 중앙화를 강조하고 현재 사용자에게 더 많은 데이터 권한 및 데이터 관리를 제공합니다. 따라서 사용자 중심화 접근 경향이 발생하고 있으며 더 중요합니다. 따라서 Flask를 사용하여 응용 프로그램 구축과 관련하여 사용자 로그인 및 인증 시스템은 기본 기능입니다. 오늘은 플라스크 로그인 관리자를 활용하고 응용 프로그램에 구축하는 방법에 관한 것입니다.

목차 : 플라스크 로그인 시스템

플라스크 로그인 관리자 설치 및 구성

이 모듈은 플라스크 애플리케이션에서 사용자 세션 관리를 제공합니다. 로그인, 로그 아웃 및 사용자의 세션을 장기간 동안 기억하는 일반적인 작업을 처리합니다.

기본적으로 Flask Login Manager는 다음을 수행 할 수 있습니다.

  1. 세션에 활성 사용자의 ID를 저장하고 쉽게 로그인 할 수 있습니다.
  2. 로그인 된 (또는 로그인) 사용자로 뷰를 제한 할 수 있습니다.
  3. 정상적으로 까다로운 “기억”기능을 처리하십시오.
  4. 쿠키 도둑으로 인해 사용자의 세션이 도난 당하지 않도록 보호하십시오.
  5. 아마도 플라스크 원칙 또는 기타 승인 확장과 통합 될 수 있습니다.

First thing first, installing a flask login manager is super easy. We can input pip3 install flask-login into your computer terminal. Then, configuring the flask login with your flask application is by doing the three steps:

1. 플라스크 로그인 모듈을 가져옵니다

2. LoginManager 인스턴스를 시작하고 앱에 연결하십시오.

3. user_id를 반환하여 load_user 함수를 정의하십시오

SQLALCHEMY 및 FLASK 로그인 usermixin을 사용하여 사용자 데이터베이스 작성 및 구성

No.1, 우리는 Sqlalchemy 모듈을 가져와 Flask 애플리케이션으로 구성해야합니다.

둘째, 필요한 데이터 열과 각 데이터 열의 사양을 추가하는 클래스 사용자를 만듭니다.

마지막으로, 우리는 이니셔티브 Sqlalchemy 데이터베이스를 만들어야합니다. 터미널에서는 이니셔티브 SQLALCHEMY 데이터베이스를 만들 수 있습니다. 플라스크 응용 프로그램에서 만든 응용 프로그램 이름과 플라스크 앱과 연결하는 데 사용한 변수 이름을 사용하십시오. 여기에서 앱과 DB를 사용합니다.

사용자 등록

이제 재료는 신규 사용자가 신청서에 가입 할 수있는 등록 경로를 구축 할 준비가되었습니다.

먼저, 사용자가 등록 할 수있는 경로는 필수적입니다.

@app.route("/registration", methods=['GET', 'POST'])

플라스크 경로 및 HTML에서 제출 데이터 수집에 대한 자세한 내용은이 기사를 확인하십시오.

https://www.easy2digital.com/automation/data/python-tutorial-26-create-a-shopify-bot-bot-using-flask-and-heroku/

둘째, 이전에 만든 사용자 클래스를 참조함으로써 등록 경로의 양식의 새 사용자 입력 데이터를 데이터베이스 열과 일치시켜야합니다. 응용 프로그램에 API 프로그램이있는 경우 여기에는 토큰 변수를 추가하고 새 사용자가 암호 입력을 해독해야합니다.

new_user = User(email=email, username=username, password=generate_password_hash(password, method='sha256'), token=token.decode())

Then, we can add the new_user and utilize commit() it to confirm it, and remember it by using the login_user function we created earlier.

Flask JWT API 배포에 대한 자세한 내용은이 기사를 참조하십시오.

https://www.easy2digital.com/automation/data/python-tutorial-54-utilize-flask-jwt-toinizer-the-api-user-identity-and-authenticate-users/

flask login_user, logout_user 및 current_user

새로운 사용자 생성 후 Flask는 개발자가 로그인 페이지를 구축하고 로그인 한 페이지를 작성하고 사이트에서 로그인 한 사용자를 감지 할 수 있도록 모듈을 제공합니다.

먼저 Flask_Login에서 모듈을 가져와야합니다. 다음 섹션에서 login_required에 대해 이야기하겠습니다.

login_user

로그인 페이지에서 사용자 로그인 정보 입력을 확인하려면 SQLALCHEMY 데이터의 사용자 비밀번호가 방문자의 비밀번호 입력과 일치 할 수 있는지 확인할 수 있습니다.

Using the query.filter_by in the User class to match the email address first. 

그런 다음 페치 된 이메일 사용자의 암호가 양식의 입력 값과 일치하는 경우 로그인됩니다. Login_User는 나중에 Log_out 이전의 세션 에서이 사용자를 기억할 수 있습니다.

logout_user

사용자가 계정에서 로그 아웃 할 수있는 새 경로 생성

현재 사용자

이것은 페이지를 방문하는 응용 프로그램에 알려주는 매우 유용한 모듈입니다. 회원에게 독점 콘텐츠를 제공하거나 알 수없는 사용자와 가입 사용자 간의 콘텐츠를 구별하려면. 이 모듈을 사용하면 기능을 배포하고 구축 할 수 있습니다.

return render_template("shopify.html", user=current_user)

기존 사용자를 감지하려면 각 경로의 Render_Template 또는 플라스크 애플리케이션에 개인화 된 컨텐츠를 표시하려는 경로에 Current_User를 추가해야합니다.

login_required 데코레이터

회원에게만 열려있는 경로의 경우 경로 아래에 login_required 데코레이터를 추가해야합니다. 예를 들어 사용자가 아직 로그인하지 않은 경우 로그 아웃 경로를 사용하거나 로그 아웃 페이지를 클릭 할 수 없으며 플라스크 메시지를 추가하여 먼저 로그인을 알릴 수 있습니다.

@app.route("/logout")

@login_required

def logout():

logout_user()

return redirect(url_for('home'))

플라스크 로그인 및 인증의 전체 파이썬 스크립트

If you are interested in the full python scripts of Chapter 57 – Build the User Account Login and Authentication System Using Flask, SQLAlchemy, please subscribe to our newsletter by adding the message “Chapter 57”. We would send you the script immediately to your mailbox.

문의하기

57 장을 읽는 것을 즐기시기 바랍니다 – Flask, Sqlalchemy를 사용하여 사용자 계정 로그인 및 인증 시스템을 구축하십시오. 당신이 그렇게했다면, 아래에 나열된 것들 중 하나를 수행하여 항상 우리의 채널을 도울 수 있기 때문에 우리를 지원하십시오.

  • Support and donate to our channel through PayPal (paypal.me/Easy2digital)
  • Subscribe to my channel and turn on the notification bell Easy2Digital Youtube channel.
  • Follow and like my page Easy2Digital Facebook page
  • 해시 태그 #easy2digital과 소셜 네트워크의 기사를 공유하십시오.
  • Buy products with Easy2Digital 10% OFF Discount code (Easy2DigitalNewBuyers2021)
  • Easy2Digital 최신 기사, 비디오 및 할인 코드를 받으려면 주간 뉴스 레터에 가입하십시오.
  • Subscribe to our monthly membership through Patreon to enjoy exclusive benefits (www.patreon.com/louisludigital)

자주하는 질문:

Q1 : Flask Sqlalchemy는 무엇입니까?

A : Flask Sqlalchemy는 플라스크의 단순성과 인기있는 객체 관계 매핑 (ORM) 도구 인 Sqlalchemy의 전력을 결합한 Python 라이브러리입니다. 이를 통해 개발자는 Python 코드를 사용하여 데이터베이스와 쉽게 상호 작용할 수 있습니다.

Q2 : Flask Sqlalchemy를 사용하면 어떤 장점이 있습니까?

A : Flask Sqlalchemy는 몇 가지 장점을 제공합니다. 첫째, 데이터베이스 작업을위한 높은 수준의 인터페이스를 제공하여 CRUD 작업 프로세스를 단순화합니다. 또한 여러 데이터베이스 백엔드를 지원하므로 다재다능합니다. 또한 플라스크와 잘 통합되어 웹 애플리케이션과 완벽한 통합이 가능합니다.

Q3 : 플라스크 sqlalchemy를 어떻게 설치합니까?

A: To install Flask SQLAlchemy, you can use pip, the Python package installer. Simply run the command ‘pip install Flask-SQLAlchemy’ in your terminal or command prompt.

Q4 : 플라스크 sqlalchemy가 데이터베이스와 함께 사용할 수 있습니까?

A : 그렇습니다. Flask Sqlalchemy는 SQLITE, MySQL, PostgreSQL 및 Oracle과 같은 인기있는 옵션을 포함하여 여러 데이터베이스 백엔드를 지원합니다. 이 유연성을 사용하면 요구에 가장 적합한 데이터베이스를 사용할 수 있습니다.

Q5 : Flask Sqlalchemy는 대규모 응용 프로그램에 적합합니까?

A: Yes, Flask SQLAlchemy is suitable for large-scale applications. It is designed to handle complex database operations efficiently and offers features like connection pooling and query optimization. However, it’s important to properly optimize your code and database queries to ensure optimal performance.

Q6 : Flask Sqlalchemy는 마이그레이션을 지원합니까?

A : 그렇습니다. Flask Sqlalchemy는 Alembic 라이브러리를 통해 마이그레이션 지원을 제공합니다. Alembic을 사용하면 데이터베이스 스키마 변경을 쉽게 관리하고 데이터 손실없이 생산 데이터베이스에 적용 할 수 있습니다.

Q7 : Flask Sqlalchemy는 Flask Extensions와 호환됩니까?

A : 그렇습니다. Flask Sqlalchemy는 다양한 플라스크 연장과 호환됩니다. 양식 처리 용 Flask-WTF와 완벽하게 통합, 사용자 인증을위한 Flask-Login 및 Admin 인터페이스 용 Flask-Admin 등을 통합합니다.

Q8 : Flask Sqlalchemy가 복잡한 쿼리를 처리 할 수 ​​있습니까?

A : 그렇습니다. Flask Sqlalchemy는 Python 코드를 사용하여 복잡한 쿼리를 구성 할 수있는 강력한 쿼리 API를 제공합니다. 필터링, 정렬, 여러 테이블 결합 및 데이터 집계를 지원합니다.

Q9 : Flask Sqlalchemy는 초보자에게 적합합니까?

A : Flask Sqlalchemy는 초보자가 사용할 수 있지만 SQL 및 데이터베이스 개념에 대한 이해가 필요합니다. 플라스크 sqlalchemy로 다이빙하기 전에 Python 및 데이터베이스에 대한 기본적인 이해가 권장됩니다.

Q10 : Flask Sqlalchemy에 대한 대안이 있습니까?

A : 그렇습니다. Pony ORM 및 Peewee와 같은 플라스크에 사용할 수있는 대체 ORM 라이브러리가 있습니다. 그러나 Flask Sqlalchemy는 널리 사용되고 문서화되어있어 많은 개발자에게 인기있는 선택입니다.