목록flask (10)
기록과 정리의 공간
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/eFGV3Q/btqHZHL5ZNm/AKLdAbei1TxHtW6kXU8Zi1/img.jpg)
참고 인프런 강의 REST API 관련 포스트 Flask로 REST API를 구현하는 방법 URI요청에 대한 응답을 JSON형식으로 작성하여 데이터를 반환하도록 만들면 된다. Flask에서는 딕셔너리 형태로 데이터를 만들고, 이를 jsonify() 메서드를 활용해 JSON포맷의 데이터로 만들 수 있다. 각 요청 메서드마다 파라미터값을 추출하는 방식이 다르다. GET/PUT/DELETE는 방식이 동일, POST만 다르다. GET/PUT/DELETE는 request.args.get('파라미터이름') 으로 가져온다. (파라미터가 가진 값을 가져옴) POST는 request.get_json() 으로 데이터를 가져온다. 이 때, 딕셔너리 형태로 가져오는데, 원하는 파라미터가 가지고 있는 값에 접근하..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/CGglR/btqGTmW6aDf/47isEmiOOlWk1YGc5PaE71/img.jpg)
Flask로 게시판 만들기 - 6 (참고 강의 링크-인프런 강의) (공부 하며 기록이 필요한 부분들만 정리함) 개발 환경 : windows 10 / Python 3.8.1 / vscode 로그인한 유저만 글쓰기 가능하게 하기 글 수정 기능 추가하기 글 삭제 기능 추가하기 글 조회수 증가 시키기 1. 로그인한 유저만 글쓰기 가능하게 하기 이 포스트와 이어짐 글쓰기 버튼을 누르면 로그인한 사용자에 한하여 글쓰기 페이지로 이동하고, 로그인되어 있지 않다면 로그인 페이지로 이동하게 한다. 로그인이 성공하면, 로그인 전에 사용자가 요청했던 페이지로 이동시키도록 한다. 데코레이터 활용(with functools모듈) : 글쓰기 기능 뿐만 아니라 기타 기능 사용을 위해 유저에게 로그인을 요구하기 위해, 함수마다 로그..
Flask로 게시판 만들기 - 5 (참고 강의 링크-인프런 강의) (공부 하며 기록이 필요한 부분들만 정리함) 개발 환경 : windows 10 / Python 3.8.1 / vscode 로그인 기능 구현하기 (세션 활용) 1. 로그인 기능 구현하기 (세션 활용) ★ HTTP는 클-서간의 연결 상태를 계속 유지하지 않는 무상태(stateless) 프로토콜이다. 즉, 요청 간 사용자 데이터를 저장하는 수단을 제공하지 않는다. 따라서, 세션(은 기본적으로 하나의 요청 정보를 다른 요청에서 기억하게 해줌)을 활용하여 서버에서 클라이언트를 특정할 수 있도록한다. Flask - 세션(Sessions) 활용하기 : (공식 문서 링크) 현재 세션에 접근하기 위해서는 flask의 session객체(flask.sessi..
1. 메시지 플래싱(Message Flashing) 플래싱 시스템은 기본적으로 요청의 끝에 메시지를 기록하고 그 다음 요청에서만 그 메시지에 접근할 수 있게 한다. 보통은 플래싱을 처리하는 레이아웃 템플릿과 결합되어 사용된다. (참고 링크) 2. flask.flash() / flask.get_flashed_messages() (API문서 링크) 메세지를 flash 하기 위하여 flash() 메소드를 사용하고 메세지를 가져오기 위하여 템플릿에서 사용할 수 있는 get_flashed_messages() 메소드를 사용할 수 있다. (참고 링크) 예제 코드 메시지 플래싱 기능을 사용하기 위해서는 SECRET_KEY를 반드시 설정해줘야 한다. 파이썬코드에서 flash()에 원하는 메시지를 인자로 넘겨준다. tes..
Flask로 게시판 만들기 - 4 (참고 강의 링크-인프런 강의) (공부 하며 기록이 필요한 부분들만 정리함) 개발 환경 : windows 10 / Python 3.8.1 / vscode 검색 기능 구현하기 1. 검색 기능 구현하기 (전체 코드X, 일부 코드만 가져옴) list.html type이 button인 input엘리먼트를 클릭하면 search()함수가 호출된다. 이 함수는 id가 search와 keyword인 엘리먼트를 찾아 해당 엘리먼트 value 속성의 값을 각각 변수에 저장하고, 조건문을 통해 v_search값이 ""가 아닐 때, Window객체의 프로퍼티인 location객체와 Flask의 url_for함수를 통해 파이썬 코드에 작성된 board_list()함수를 실행시키는 url로 이동..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/baBigB/btqF9G2XkMd/sUPGahGqNOk1pDoAtaITK1/img.jpg)
Flask로 게시판 만들기 - 3 (참고 강의 링크-인프런 강의) (공부 하며 기록이 필요한 부분들만 정리함) 개발 환경 : windows 10 / Python 3.8.1 / vscode jinja문법을 사용하여 게시물 번호 매기기 게시물 리스트 pagination(페이지네이션) 구현하기 1. jinja문법을 사용하여 게시물 번호 매기기 for문 블럭안에서 사용할 수 있는 특별한 variables 몇 가지 (링크) (링크 접속 후 컨트롤 + f 로 loop.index 검색 후 3번째 loop.index 부분에 정리되어있음) Variable Description loop.index 1부터 시작해서 현재 반복 횟수를 나타냄 loop.index0 0부터 시작 loop.length 전체 반복 횟수 나타냄 # 예..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/FRu6g/btqGdEimdfM/Glkpb9JIopKWFybzvkPINK/img.jpg)
1. flask.redirect() (공식 문서 링크) 호출 될 경우, 클라이언트를 대상 위치로 리디렉션하는 응답 오브젝트 (WSGI 애플리케이션)를 리턴한다. 첫 번째 인자로 location을 받는다. 이는 응답이 redirect해야하는 위치를 의미한다. 2. flask.url_for() (공식 문서 링크1), (공식 문서 링크2) 라우팅이 설정된 함수에 대한 URL을 얻어내기 위해 사용할 수 있다. 첫 번째 인자로 함수의 이름을 받고, 두 번째 부터는 URL 룰의 변수 부분에 대한 다수의 키워드를 인자로 받는다. 참고로 url_for()는 html파일에서 jinja문법을 통해 사용될 수 있다. ex> 내용 예를들어 '/view'이런식으로 직접 url을 쓰지 않고, url_for()를 사..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/cy0Iw0/btqF63ceAAP/pRV5JNUdjpxMVb2AOVNuG0/img.jpg)
Flask로 게시판 만들기 - 2 (참고 강의 링크-인프런 강의) (공부 하며 기록이 필요한 부분들만 정리함) 개발 환경 : windows 10 / Python 3.8.1 / vscode MongoDB 연결하기 (flask_pymongo라이브러리 공식 문서 링크) 게시물 작성 시간 구하기 1. MongoDB 연결하기 #1 : flask_pymongo의 PyMongo import하기 #2 : ["MONGO_URI"]는 지정된 문자열이므로 바꾸면 안된다. PyMongo는 localhost의 27017 포트에서 실행 중인 MongoDB서버에 연결되고, 이 때 DB의 이름은 myweb2(사용자가 지정)이다. #3 : mongo라는 인스턴스로 #2에서 생성한 DB에 접근할 수 있게 된다. #4 : board라는 ..