Quickstarters
CRUD Samples
Flask로 CRUD 애플리케이션 개발?
32 분
개요 이 튜토리얼은 flask를 사용하여 crud(생성, 읽기, 업데이트, 삭제) 애플리케이션을 구축하는 방법을 안내합니다 우리는 데이터 관리를 간소화하기 위해 back4app을 백엔드 서비스로 통합할 것입니다 back4app 프로젝트를 설정하고, 유연한 데이터 구조를 설계하며, flask를 사용하여 crud 기능을 구현하는 방법을 배우게 됩니다 이 단계별 안내에서는 먼저 basic crud app flask 라는 이름의 back4app 프로젝트를 생성하여 강력한 비관계형 데이터 저장 솔루션을 제공합니다 클래스와 필드를 사용하여 데이터 스키마를 수동으로 정의하거나 back4app의 ai 에이전트를 사용할 수 있습니다 back4app의 관리 인터페이스로 백엔드를 구성한 후, flask 애플리케이션을 rest api 호출을 통해 서비스에 연결합니다 이 튜토리얼은 데이터에 대한 안전한 접근 관리도 다룹니다 마지막에는 crud 작업을 수행할 수 있는 보안 사용자 인증 및 데이터 처리를 갖춘 프로덕션 준비가 완료된 flask 애플리케이션을 갖게 됩니다 당신이 배울 내용 비관계형 백엔드를 사용하여 flask 기반 crud 앱을 만드는 방법 back4app에서 백엔드를 구조화하고 flask 프로젝트와 통합하는 방법 back4app 관리 인터페이스를 활용하여 crud 작업을 쉽게 관리하는 방법 docker를 사용하여 컨테이너화하는 것을 포함하여 flask 애플리케이션을 배포하는 방법 필수 조건 시작하기 전에 다음을 확인하세요 구성된 프로젝트가 있는 back4app 계정입니다 도움이 필요하신가요? back4app 시작하기 https //www back4app com/docs/get started/new parse app 를 참조하세요 설정된 python 개발 환경입니다 vscode 또는 pycharm과 같은 편집기를 사용하고 python 3 8(또는 이후 버전)을 설치하세요 python, flask 및 rest api에 대한 기본 지식입니다 필요한 경우 python 문서 https //docs python org/3/ 를 참조하세요 1단계 – 초기 프로젝트 설정 back4app 프로젝트 만들기 back4app 계정에 로그인하세요 “새 앱” 클릭 대시보드에서 프로젝트 이름 입력 basic crud app flask 설정 프로세스를 완료하세요 새 프로젝트 만들기 생성 후, 프로젝트가 대시보드에 나타나며, 백엔드 구성의 기반 역할을 합니다 2단계 – 데이터 스키마 구축 데이터 구조 정의하기 이 애플리케이션을 위해 back4app 프로젝트에서 여러 클래스를 설정할 것입니다 아래는 crud 작업에 필수적인 핵심 클래스와 그 필드의 예입니다 1\ 아이템 클래스 필드 유형 설명 id 객체 id 자동 생성된 고유 식별자 제목 문자열 항목의 이름 또는 제목 설명 문자열 항목에 대한 간략한 개요 생성일 날짜 항목이 생성된 타임스탬프 업데이트됨 날짜 최신 업데이트의 타임스탬프 2\ 사용자 클래스 필드 유형 설명 id 객체 id 자동 생성된 고유 식별자 사용자 이름 문자열 사용자를 위한 고유한 사용자 이름 이메일 문자열 고유한 이메일 주소 비밀번호 해시 문자열 인증을 위한 안전하게 해시된 비밀번호 생성일 날짜 사용자 계정이 생성된 타임스탬프 업데이트됨 날짜 마지막 계정 업데이트의 타임스탬프 이러한 클래스를 생성하고 back4app 대시보드에서 필드를 직접 추가할 수 있습니다 새 클래스 만들기 데이터 유형을 선택하고, 필드 이름을 지정하고, 기본값을 설정하고, 필수로 표시하여 열을 추가할 수 있습니다 열 만들기 back4app의 ai 에이전트를 활용한 스키마 생성 대시보드의 ai 에이전트는 귀하의 지침에 따라 스키마를 자동으로 설정할 수 있습니다 이 도구는 프로세스를 간소화하고 귀하의 데이터 모델이 crud 작업에 최적화되도록 보장합니다 ai 에이전트 사용 방법 ai 에이전트 열기 back4app 대시보드에 로그인하고 프로젝트 설정에서 ai 에이전트를 찾습니다 스키마 설명하기 클래스와 필드를 나열하는 자세한 프롬프트를 제공합니다 설정 확인하기 제안된 스키마를 검토하고 변경 사항을 승인합니다 예시 프롬프트 create the following classes in my back4app project 1\) class items \ fields \ id objectid (auto generated) \ title string \ description string \ createdat date (auto generated) \ updatedat date (auto updated) 2\) class users \ fields \ id objectid (auto generated) \ username string (unique) \ email string (unique) \ passwordhash string \ createdat date (auto generated) \ updatedat date (auto updated) 이 ai 기반 프로세스는 시간을 절약하고 일관되고 효과적인 데이터 모델을 보장합니다 3단계 – 관리자 인터페이스 활성화 및 crud 작업 처리 관리자 인터페이스 개요 back4app의 관리자 인터페이스는 백엔드 데이터를 관리하기 위한 코드 없는 솔루션을 제공합니다 드래그 앤 드롭 기능을 사용하여 레코드를 추가, 편집 또는 삭제하는 crud 작업을 쉽게 수행할 수 있습니다 관리자 인터페이스 활성화 “더보기” 메뉴로 이동 귀하의 back4app 대시보드에서 “관리자 앱” 선택 을 클릭하고 “관리자 앱 활성화 ” 관리자 계정을 생성하고, 초기 역할인 b4aadminuser 를 설정합니다 관리자 앱 활성화 활성화 후, 관리자 인터페이스에 로그인하여 프로젝트 데이터를 관리합니다 관리자 앱 대시보드 crud를 위한 관리자 인터페이스 사용 관리자 인터페이스 내에서 다음을 수행할 수 있습니다 새 항목 추가 클래스 내에서 “레코드 추가”를 클릭하여 새 데이터를 생성합니다 항목 보기 및 수정 세부정보를 보거나 필드를 업데이트하려면 레코드를 선택합니다 레코드 삭제 더 이상 필요하지 않은 항목을 제거합니다 이 사용하기 쉬운 인터페이스는 백엔드 관리를 간소화하여 생산성을 향상시킵니다 4단계 – flask 애플리케이션을 back4app에 연결하기 백엔드가 설정되면 다음 단계는 flask 애플리케이션을 back4app에 연결하는 것입니다 flask에서 api 호출하기 flask에 전용 parse sdk가 없기 때문에 rest api 호출을 사용합니다 flask 앱에서 requests 라이브러리를 사용하여 crud 작업을 수행할 수 있습니다 예 api 통신 설정하기 요청 라이브러리 설치 터미널에서 다음 명령을 실행하세요 pip install requests api 호출을 위한 python 모듈 구성 back4app api py 라는 이름의 파일을 만드세요 # back4app api py import requests application id = "your application id" rest api key = "your rest api key" base url = "https //parseapi back4app com/classes" headers = { "x parse application id" application id, "x parse rest api key" rest api key, "content type" "application/json" } def get items() response = requests get(f"{base url}/items", headers=headers) return response json() def create item(title, description) data = {"title" title, "description" description} response = requests post(f"{base url}/items", headers=headers, json=data) return response json() def update item(object id, title, description) data = {"title" title, "description" description} response = requests put(f"{base url}/items/{object id}", headers=headers, json=data) return response json() def delete item(object id) response = requests delete(f"{base url}/items/{object id}", headers=headers) return response json() flask 라우트에 api 기능 통합 예를 들어, app py # app py from flask import flask, request, jsonify, render template from back4app api import get items, create item, update item, delete item app = flask( name ) @app route("/") def index() items = get items() return render template("index html", items=items get("results", \[])) @app route("/add", methods=\["post"]) def add item() title = request form get("title") description = request form get("description") result = create item(title, description) return jsonify(result) @app route("/update/\<item id>", methods=\["put"]) def modify item(item id) data = request get json() result = update item(item id, data get("title"), data get("description")) return jsonify(result) @app route("/delete/\<item id>", methods=\["delete"]) def remove item(item id) result = delete item(item id) return jsonify(result) if name == " main " app run(debug=true) 이 예제는 flask 내에서 rest 호출을 사용하여 back4app 백엔드와 상호작용하는 방법을 보여줍니다 5단계 – 백엔드 보호하기 접근 제어 구현하기 접근 제어를 구성하여 데이터를 보호하세요 예를 들어, 새 항목을 생성할 때 해당 항목의 생성자에게만 접근을 제한할 수 있습니다 아래는 제어된 접근을 사용한 api 호출의 예입니다 import requests def create private item(title, description, user token) data = {"title" title, "description" description} headers = { "x parse application id" "your application id", "x parse rest api key" "your rest api key", "x parse session token" user token, "content type" "application/json" } response = requests post("https //parseapi back4app com/classes/items", headers=headers, json=data) return response json() 클래스 수준 권한 구성하기 back4app 대시보드에서 클래스 수준 권한(clps)을 직접 조정하여 인증된 사용자만 특정 클래스에 접근할 수 있도록 하세요 6단계 – 사용자 인증 구현하기 사용자 관리 설정하기 back4app은 users 클래스를 통해 내장된 사용자 관리를 제공합니다 flask 앱에서 등록 및 로그인 엔드포인트를 생성할 수 있습니다 예 사용자 등록 및 로그인 \# auth py import requests application id = "your application id" rest api key = "your rest api key" headers = { "x parse application id" application id, "x parse rest api key" rest api key, "content type" "application/json" } def register user(username, password, email) data = {"username" username, "password" password, "email" email} response = requests post("https //parseapi back4app com/users", headers=headers, json=data) return response json() def login user(username, password) params = {"username" username, "password" password} response = requests get("https //parseapi back4app com/login", headers=headers, params=params) return response json() 이 함수들을 사용하여 사용자 등록 및 로그인을 처리하는 flask 경로를 생성할 수 있습니다 7단계 – flask 애플리케이션 배포 back4app은 배포를 간소화합니다 docker를 포함한 여러 방법으로 flask 앱을 배포할 수 있습니다 7 1 flask 애플리케이션 패키징 애플리케이션 준비 필요한 모든 파일과 종속성이 포함되어 있는지 확인하십시오 로컬 테스트 다음과 같이 로컬에서 앱을 실행하십시오 flask run 7 2 프로젝트 구조 정리 일반적인 구조는 다음과 같을 수 있습니다 basic crud app flask/ \| app py \| back4app api py \| auth py \| templates/ \| | index html \| static/ \| requirements txt \| dockerfile 7 3 docker로 컨테이너화 프로젝트 루트에 dockerfile 을 포함하십시오 \# use a lightweight python image from python 3 9 slim \# set the working directory workdir /app \# install dependencies copy requirements txt run pip install no cache dir r requirements txt \# copy the application code copy \# expose the port flask runs on expose 5000 \# start the flask app cmd \["python", "app py"] 7 4 back4app 웹 배포를 통한 배포 github 리포지토리 연결 코드가 github에 푸시되었는지 확인하세요 배포 설정 구성 back4app 대시보드에서 웹 배포 기능을 사용하여 리포지토리를 연결하세요 (예 basic crud app flask ) 및 브랜치를 선택하세요 빌드 명령 정의 빌드 명령을 지정하세요 (예 pip install r requirements txt ) 및 애플리케이션의 위치를 지정하세요 배포 배포 를 클릭하고 애플리케이션이 라이브 될 때까지 로그를 모니터링하세요 8단계 – 마무리 및 향후 방향 잘 하셨습니다! back4app과 통합된 flask 기반 crud 애플리케이션을 성공적으로 생성했습니다 당신은 basic crud app flask 라는 프로젝트를 설정하고, 아이템과 사용자에 대한 데이터 모델을 정의했으며, back4app 관리 인터페이스를 통해 백엔드를 관리했습니다 또한, rest api 호출을 사용하여 flask 애플리케이션을 연결하고 보안 조치를 구현했습니다 다음은 무엇인가요? 기능 확장 고급 검색, 상세 아이템 보기 또는 실시간 업데이트와 같은 기능을 추가하는 것을 고려하세요 백엔드 서비스 향상 클라우드 기능을 탐색하거나, 서드파티 api를 통합하거나, 역할 기반 접근 제어를 구현하세요 기술 심화 back4app 문서 https //www back4app com/docs 를 방문하고 다른 리소스를 통해 애플리케이션을 더욱 정교하게 다듬으세요 행복한 코딩과 flask crud 애플리케이션에 행운을 빕니다!