Python을 사용하여 스팸 방지, 옵트인 이메일 등록 구축

王林
풀어 주다: 2024-08-14 14:35:32
원래의
1025명이 탐색했습니다.

Build an anti-spam, opt-in Email registration with Python

그럼 앱을 만들고 많은 사용자를 확보하고 싶으신가요?

우리 모두는 그렇습니다. 초보자라면 다음 이메일 가입 기능을 고려해야 합니다.

  1. 강력한 비밀번호가 있는 유효한 이메일 주소
  2. 봇 예방
  3. 이중 옵트인 가입

웹 앱, 뉴스레터, 무료 다운로드, 비공개 그룹 초대 및 리드 생성에는 견고한 이메일 가입 시스템이 필수적입니다. 앱에 액세스하기 위해 Auth0, Facebook 또는 Google과 같은 타사 서비스를 사용하지 마십시오.앱 데이터를 나만의 것으로 유지하세요!

시작하려면Python에 대한 경험이 있어야 합니다. 왜냐하면 우리는 MySQL 데이터베이스와 함께 Flask 프레임워크를 사용할 것이기 때문입니다. 이것은 가장 인기 있는 CMS인 Wordpress를 사용하는 것보다 더 재미있을 것입니다. 무료 Flask 확장과 동일한 기능을 사용하려면 일부 Wordpress 플러그인에 대한 비용을 지불해야 합니다. 저는 이전에 두 가지 모두를 기반으로 구축했으며 Wordpress가 웹 앱을 만드는 데 매우 능숙함에도 불구하고 웹 앱용 Python Flask를 선호합니다.

각 코드 조각에 대해 설명하고 코드에 몇 가지 설명을 포함합니다. 사용자 등록을 구축하지 않았거나 내부 작동 방식을 알지 못하는 경우 자세한 내용을 설명하겠습니다. 첫 번째 단락에 명시된 대로 구현할 기능을 요약하면 다음과 같습니다.

  1. 올바른 이메일 주소는 정규식이나 Flask 확장을 사용하여 사용자가 입력한 문자열을 구문 분석하여 확인할 수 있습니다. 임의의 텍스트나 SQL 주입 유형의 해킹은 허용되지 않습니다.

  2. 봇 방지는 사용자에게 표시되지 않지만 일반적으로 취약한 가입 양식을 크롤링하는 봇에 의해 자동으로 채워지는 숨겨진 필드를 사용하여 수행할 수 있습니다.

  3. 이중 수신 동의 방법을 사용하려면 수신자가 받은편지함에 대한 확인 링크를 받아 이메일을 보낼 수 있는 권한을 부여해야 합니다. 이는 주로 다른 사람이 귀하의 이메일 주소를 사용하는 것을 방지하는 데 사용됩니다. 이는 또한 방금 가입하고 계정을 포기하는 테스트 사용자를 방지합니다.

코딩해보자!

작업 디렉토리 만들기:

으아아아

python3 -m venv signup 또는 conda create -n signup python3을 사용하여 Python 환경을 만듭니다. 저는 콘다를 더 좋아해요

사용자를 저장할 MySQL 테이블을 만듭니다. 검증된 필드는 이중 옵트인을 위한 것입니다:

으아아아

종속성 설치:
pip 플라스크 플라스크 메일 보안 SQLAlchemy Flask-WTF Flask-SQLAlchemy mysql-connector-python

또는 요구사항.txt 파일에 동일한 내용을 나열하고 pip install -r 요구사항.txt

를 실행할 수 있습니다.

다음 종속성을 갖는 app.py 파일을 생성합니다.

으아아아

다음 줄을 사용하여 자체 서버 구성 데이터를 입력하세요.

으아아아

궁극적으로 .env 파일에 구성 정보가 있어야 합니다.

다음 섹션에서는 SQLAlchemy의 ORM 구조를 사용하여 데이터베이스를 쿼리합니다.클래스 이름은 데이터베이스 테이블 이름과 일치해야 합니다. 그렇지 않으면 오류가 발생합니다. db.model은 열 이름, 유형, 길이, 키 및 null 값을 포함하는 테이블 설정을 나타냅니다.

으아아아

MySQL 데이터베이스 테이블을 아직 수동으로 생성하지 않은 경우 클래스 사용자 코드 블록 바로 뒤에 이 Flask 코드를 사용하여 생성할 수 있습니다.

으아아아

이 튜토리얼의 간결함을 위해 색인 페이지나 앱 홈페이지라고 부르고 싶은 페이지를 건너뛰고 페이지 경로에 대해 Python의 데코레이터 기능을 사용하여 가입 페이지만 표시합니다.

으아아아

html 가입 양식을 추가하기 전에 이중 옵트인 기능을 검증하기 위한 경로를 추가하여 백엔드를 완성해 보겠습니다. 이 경로는 시간에 민감한 비밀 토큰을 생성하는 이전에 생성한 s 변수를 사용합니다. 자세한 내용은 문서를 참조하세요
최대 사용 기간은 링크가 만료되기 전의 시간(초)이므로 이 경우 사용자는 20분 내에 이메일 주소를 확인해야 합니다.

으아아아

이제 (가져온 모듈이 아닌) 파일이 직접 실행되는 경우 Python에 스크립트를 실행하라고 지시하는 유비쿼터스 기본 명령문은 다음과 같습니다.

으아아아

이 백엔드 코드를 완성하기 전에 사용자 입력을 위한 프런트엔드 HTML이 여전히 필요합니다. 우리는 Flask에 내장된 Jinja 템플릿을 사용하여 이 작업을 수행할 것입니다. 이전에 app.py에서 만든 경로와 이름이 일치하는 template/signup.html이라는 파일을 만듭니다. 기본적으로 Jinja는 html 파일에 /templates 디렉터리를 사용합니다. 이 설정을 변경할 수 있지만 이 튜토리얼에서는 앱의 /templates 디렉터리를 사용하겠습니다.

으아아아

디버깅이 활성화된 상태에서 Flask 명령을 실행하면 이 시점부터 코드가 작동해야 합니다. 이렇게 하면 명령줄과 브라우저 창에서 오류를 확인할 수 있습니다.

으아아아

위 내용은 Python을 사용하여 스팸 방지, 옵트인 이메일 등록 구축의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:dev.to
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!