마이클 아보아계는 가나에 거주하는 백엔드 소프트웨어/보안 엔지니어입니다. 그는 Python으로 안전한 백엔드 서비스를 구축하는 데 관심이 있습니다.
이 튜토리얼에서는 플라스크 프레임워크를 백엔드 서버로 사용하여 일기장 웹 애플리케이션을 구축하는 방법을 살펴보겠습니다.
이 튜토리얼이 끝나면 플라스크 프레임워크로 간단한 웹 애플리케이션을 구축하여 사용자의 세부 정보를 Couchbase 서버로 전송할 수 있습니다. 또한 Couchbase 서버를 설정하고 구성하는 방법도 배우게 됩니다.
전제 조건
GitHub에서 프로젝트를 실행하거나 복제하려면 다음 패키지가 필요합니다.
- 플라스크 프레임워크 (최신 버전)
플라스크 프레임워크는 파이썬으로 작성된 마이크로 프레임워크입니다. 유효성 검사 양식, 인증 메커니즘 등이 제공되지 않기 때문에 마이크로 프레임워크입니다. 이를 통해 자신만의 방식으로 애플리케이션을 사용자 지정할 수 있습니다.
- 진자 템플릿 (최신 버전)
Jinja 템플릿은 템플릿이 렌더링되거나 표시될 때 대체되는 변수와 표현식이 포함된 텍스트 파일입니다.
- 카우치베이스 서버 (커뮤니티 에디션)
카우치베이스 서버는 확장 가능한 NoSQL 문서 데이터베이스입니다. 사용자 데이터를 저장하는 데 Couchbase 서버를 사용합니다.
가상 환경 만들기
먼저 다음을 사용하여 가상 환경을 저장할 디렉토리를 만듭니다. mkdir 명령을 사용합니다.
아래 명령은 디렉터리를 다음과 같이 생성합니다. 웹 프로젝트 로 변경하고 웹 프로젝트 디렉토리.
1 2 |
mkdir 웹 프로젝트 && cd 웹 프로젝트 가상 환경 일기 |
그런 다음 다음 명령을 사용하여 다이어리 디렉토리로 변경하여 가상 환경을 활성화합니다:
1 2 3 |
mkdir 웹 프로젝트 && cd 웹 프로젝트 가상 환경 일기 |
가상 환경에 들어가면 시스템 패키지와 충돌할 염려 없이 패키지를 설치할 수 있습니다.
플라스크 프레임워크 및 기타 패키지 설치
이 섹션에서는 파이썬으로 작성된 플라스크 프레임워크와 프로젝트에 필요한 기타 패키지를 설치합니다.
pip와 dpkg를 사용하여 이 프로젝트에 필요한 패키지를 설치해 보겠습니다.
1 2 3 4 5 |
pip 설치 카우치베이스 pip 설치 jinja Pip 설치 플라스크 |
이 튜토리얼에서는 도커를 통해 카우치베이스 서버를 실행합니다. 다음을 수행하려면 로컬 호스트 또는 개발 머신에 Docker가 있어야 합니다. 에서 카우치베이스 이미지를 가져오거나 다운로드하십시오. 도커허브.
터미널로 이동하여 다음을 입력하여 DockerHub 리포지토리에 액세스합니다:
1 |
도커 로그인 |
그런 다음 자격 증명을 입력하라는 메시지가 표시되면 DockerHub에서 이미지에 액세스하거나 이미지를 '가져오기' 전에 자격 증명을 입력해야 합니다.
1 |
도커 pull 카우치베이스/서버 |
루트 사용자로 Docker 명령을 실행해야 합니다.
그러나 CouchBase Server를 수동으로 설치하는 것을 선호하는 경우, CouchBase는 Debian 기반 및 Redat 배포를 위한 두 가지 설치 방법을 제공합니다. 다음에서 확인할 수 있습니다. 카우치베이스.
카우치베이스 서버용 Python SDK 2.5 다운로드
Couchbase 서버에 액세스하려면 Couchbase 클러스터에 액세스하기 위해 Couchbase SDK 클라이언트를 다운로드해야 합니다. Couchbase는 Python, .NET, Java와 같은 프로그래밍 언어용 SDK를 제공합니다. pip를 사용하여 Python용 Couchbase SDK를 다운로드하고 설치해 보겠습니다:
1 |
pip 설치 카우치베이스 |
카우치베이스 서버 구성 및 시작
DockerHub에서 Couchbase Server 이미지를 가져온 후에는 다음 명령을 사용하여 새 컨테이너를 만들고 실행할 수 있습니다:
1 |
도커 실행 -d --이름 db -p 8091-8094:8091-8094 -p 11210:11210 카우치베이스 |
도커 실행: 이 명령은 카우치베이스 이미지 위에 컨테이너 레이어를 생성하고 이를 시작합니다.
-d : -d 플래그는 컨테이너가 데몬으로 실행됨을 의미합니다.
-name : 새 컨테이너의 이름입니다.
-p : 이 플래그는 포트 매핑용입니다.
이제 컨테이너에서 Couchbase 서버를 실행하고 있습니다.
브라우저에서 컴퓨터의 http://localhost:8091 으로 이동하여 Couchbase 서버를 구성합니다.
보시다시피 새 클러스터를 만들거나 기존 클러스터에 가입할 수 있는 옵션이 있습니다. 새 단일 클러스터를 설정하는 옵션을 선택해 보겠습니다. 클러스터 이름 설정, 사용자 이름 만들기 관리자 와 아래와 같이 6자의 비밀번호를 입력합니다:
기본 설정으로 가보겠습니다. 새 클러스터의 호스트 이름 또는 IP 주소를 설정해야 합니다. 이 프로젝트의 목적을 위해 데이터 디스크, 인덱스 디스크 경로 및 Analytics 디스크 경로는 변경하지 않습니다.
또한 RAM이 충분하지 않은 경우 메모리 할당량을 변경할 필요가 없습니다. 마지막으로 기본 설정으로 Couchbase 서버를 시작하거나 메모리 및 서비스를 구성하는 두 가지 옵션이 표시됩니다.
Couchbase Server의 메모리 및 서비스를 구성할 수 있는 버튼을 클릭합니다.
호스트 이름 또는 IP 주소 섹션에서는 다음과 같은 호스트 이름을 설정할 수 있습니다. localhost 또는 192.168.15.12. 데이터 디스크 경로를 사용하면 경로를 정의할 수 있습니다.
그런 다음 버킷 만들기 라는 사용자 데이터에 액세스합니다.
다이어리 애플리케이션을 위한 서버 측 코드 작성
S가상 환경 내부까지 파일을 생성합니다. 명명된 app.py. app.py 파일에 다음 코드를 복사하여 붙여넣습니다:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
에서 플라스크 가져오기 플라스크 에서 카우치베이스 가져오기 카우치베이스 클라이언트 = 카우치베이스.연결(호스트 = "localhost", 비밀번호 = "비밀번호_여기", 버킷 = "사용자 데이터") @앱.경로('/home', 메서드=['GET']) def 홈 페이지(): 반환 렌더_템플릿('home.html') @앱.경로('/home/create-memo'), 메서드=['POST']) def create_memo(): 만약 메서드 == "POST": 일기 = { "메모" : 요청.양식["메모"], "year" : 요청.양식["year"], "month" : 요청.양식["month"], "day" : 요청.양식["day"] } 키=uuid.uuid1.헥스() user_doc=json.덤프(일기) 클라이언트.set(키, user_doc) 반환 리디렉션(url_for("index")) 반환 렌더링_보기("create.html") |
위의 코드에서는 Flask 프레임워크와 Python용 Couchbase 클라이언트를 가져왔습니다. 다음으로, Couchbase 클라이언트 연결 방법을 통해 Users-data 버킷에 연결했습니다. 그런 다음 홈페이지와 사용자를 위한 메모 작성 페이지를 위한 경로를 만들었습니다.
메시지 페이지에 대한 경로를 만들 수도 있습니다. 이 페이지에는 사용자가 제출한 메시지가 표시됩니다. "app.py" 파일 안에 다음 코드를 작성하여 Couchbase 서버에서 특정 사용자 메시지를 검색합니다:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
@앱.경로('홈/저장-메시지', 메서드=['GET','POST']) def get 저장된_메시지(): 저장된 메시지 = 클라이언트.get(키) 저장된 이벤트 = json.로드(저장된_메시지) 만약 요청.메서드 == "POST": 저장된 이벤트.메모 = 요청.양식["메모"] 저장된 이벤트.년 = 요청.양식["년"] 저장된 이벤트.월 = 요청.양식["월"] 저장된 이벤트.일 = 요청.양식["일"] user_doc = json.덤프(일기) 클라이언트.set(키, user_doc) 반환 리디렉션(url_for(홈 페이지)) 반환 렌더_템플릿("저장.html", 모델=저장된 이벤트) |
프로젝트 디렉터리에서 아래와 같이 mkdir 명령을 사용하여 하위 디렉터리를 만듭니다:
1 |
mkdir 템플릿 |
템플릿 디렉토리에서 터치 명령을 사용하여 home.html, savedmemo.html 및 postmemo.html 파일을 만듭니다:
1 |
터치 홈.html create.html 저장.html |
home.html 파일에 다음 코드를 붙여넣습니다:
1 2 3 4 5 6 7 8 9 |
<html> <head> <title>환영 에 매일 메모 예약</title> </head> <body> <h1> 기억하세요 귀하의 기억에 남는 이벤트</h1> <p>환영 에 의 세계 의 플라스크!</p> </body> </html> |
memo.html 파일 안에 다음 코드를 붙여넣습니다:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
<양식 액션="/home/create-memo" 메서드="post"> <div> <레이블 에 대한="name">이름:</레이블> <입력 유형="text" id="name" 이름="name" </div> <div> <레이블 에 대한="month">월:</레이블> <입력 유형="text" id="month" 이름="month"> </div> <div> <레이블 에 대한="year">연도:</레이블> <입력 유형="text" id="year" 이름="year"> </div> <div> <레이블 에 대한="메모">메모:</레이블> <텍스트 영역 id="메모" 이름="메모"></텍스트 영역> </div> </양식> <div 클래스="버튼"> <버튼 유형="제출">보내기 당신의 메시지</버튼> </div> |
savedmemo.html 파일 안에 다음 코드를 붙여넣어 저장된 메시지가 있는 양식을 표시하는 양식을 렌더링합니다:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
<양식 액션="/홈/저장된 메모" 메서드="POST"> <div>이름: <입력 유형="텍스트" 이름="이름" 값="{{모델.이름}}" /> </div> <div>월: <입력 유형="텍스트" 이름="월" 값="{{모델.월}}" /> </div> <div>연도: <입력 유형="텍스트" 이름="년" 값="{{모델.연도}}" /> </div> <div>메모: <입력 유형="텍스트" 이름="메모" 값="{{모델.메모}}" /> </div> <div> <입력 유형="숨겨진" 이름=" </양식> |
다음 명령을 실행하여 아래와 같이 플라스크 기반 애플리케이션을 시작합니다:
1 |
python 앱.py |
브라우저를 열고 다음 URL로 이동하여 Couchbase 서버에 세부 정보를 제출할 수 있는 페이지를 표시합니다:
http://localhost.com/home/create-memo
또한 사용자의 메시지가 표시될 페이지로 이동하여 Couchbase Server에 제출하기 전에 편집하거나 수정하고 저장할 수 있는 페이지로 이동하려면 다음을 사용하세요:
http://localhost.com/home/saved-messages/:5000
결론
이 튜토리얼에서는 Couchbase Server를 백엔드로 사용하여 간단한 Flask 기반 일기장 애플리케이션을 구축하는 방법을 배웠습니다. 사용자가 양식을 통해 Couchbase 서버로 데이터를 전송할 수 있습니다.
다음에서 전체 프로젝트를 다운로드하거나 복제할 수 있습니다. GitHub 를 사용해 보세요.
이 게시물은 카우치베이스에서 제공한 것입니다. 커뮤니티 글쓰기 프로그램