본문 바로가기

Python/FLASK12

[플라스크] - 비즈니스 로직 비즈니스 로직은 컴퓨터 프로그램에서 데이터를 생성/표시/저장/변경 하는 부분을 말합니다. 현재 진행하고 있는 플라스크 인스타그램 서비스에서의 비즈니스 로직은 주로 api/resources에 정의되어 있습니다. @classmethod @jwt_required() def put(cls, id): """ 게시물의 전체 내용을 받아서 게시물을 수정 없는 리소스를 수정하려고 한다면 HTTP 404 상태 코드와 에러 메시지를, 그렇지 않은 경우라면 수정을 진행 """ post_json = request.get_json() # first-fail 을 위한 입력 데이터 검증 validate_result = post_schema.validate(post_json) if validate_result: return vali.. 2022. 11. 27.
Flask - 인스타그램 클론코딩(댓글 수정, 삭제 구현) 구현하기에 앞서 댓글 수정 및 삭제는 작성자만 수행할 수 있는 기능이라는 생각이 들어 유저를 구분해줄 수 있는 jwt를 사용해주어야 겠다는 생각이 들었다. PUT 구현하기 앞서 댓글의 경우 기본적으로는 게시물 수정과 비슷하나, 게시물 id 뿐만아니라 해당 댓글의 id 또한 필요함을 알 수 있다. 따라서 class CommentDetail(Resource): @classmethod @jwt_required() def put(cls, post_id, comment_id): comment_json = request.get_json() username = get_jwt_identity() author_id = UserModel.find_by_username(username).id comment = Comment.. 2022. 11. 20.
플라스크 - WSGI? WSGI(Web Server Gateway Interface) 파이썬에서 어플리케이션 즉 파이썬 스크립트가 웹 서버와 통신하기 위한 인터페이스, 프로토코 개념으로도 이해할 수 있습니다. WSGI는 서버와 앱 양단으로 나뉘어져 있으며, WSGI 리퀘스트를 처리하려면 서버에서 환경정보와 콜백함수를 앱에 제공해야 합니다. 그리고 그 앱은 그 요청을 처리하고 콜백함수를 통해 서버에 응답합니다. 방식 요청 -> 웹 서버 -> WESGI Server(middleware) -> WSGI를 지원하는 웹 어플리케이션(Django; flask 등) 웹 서버가 웹 애플리케이션과 통신하는 방법과 웹 애플리케이션을 연결하여 하나의 요청을 처리하는 방법에 대한 설명서 즉, 여러 종류의 웹 서버와 여러 종류의 웹 애플리케이션이 모.. 2022. 11. 13.
인스타그램 클론코딩하기 개요 현재까지 구현한 인스타그램 API는 로그인 한 사용자라면 누구나 게시물을 작성할 수 있고, 삭제할 수도 있습니다. A 유저가 B 유저의 게시물을 삭제한다면 문제가 생깁니다. 따라서 게시물을 작성한 본인만 삭제가 가능하게끔 구현하려고 합니다. get_jwt_identity() 로 요청을 보낸 사용자의 username을 받아옴 받아온 username을 가진 사용자의 id를 구함 삭제를 원하는 게시물의 유저 id를 구함 요청을 보낸 사용자 id와 게시물 작성자의 id를 비교함 같다면 삭제하고, 다르다면 삭제하지 못함 토큰 resource.user.py에 해당 내용을 import 해줍니다 그 후 클래스를 작성해줍니다. 또한 잘못된 비밀번호를 전달했을 경우에는 401 에러가 나게 코드를 적어주었습니다. 이때.. 2022. 11. 6.