기타 공부/생활코딩 Python Flask Web Framework 노트정리 9

9. 삭제

삭제 기능을 구현하는 강의이다. read 페이지에서 삭제 버튼을 누르면 해당 페이지에서 보고 있던 데이터가 데이터베이스에서 삭제되고 사용자는 메인 화면으로 이동한다. 강의를 참고하여 아래와 같이 코드를 작성했다. from flask import Flask, request, redirect app = Flask(__name__) # 새 데이터가 추가될 때 사용될 아이디를 저장하는 전역변수 nextId = 4 # 데이터베이스 역할을 할 리스트 topics = [ {'id': 1, 'title': 'A', 'content': 'This is page A.'}, {'id': 2, 'title': 'B', 'content': 'This is page B.'}, {'id': 3, 'title': 'C', 'cont..

8. 수정

기존의 데이터를 수정하는 기능을 추가하는 회차이다. 강의 내용을 참고하여, 아래의 코드를 작성하였다. from flask import Flask, request, redirect app = Flask(__name__) # 새 데이터가 추가될 때 사용될 아이디를 저장하는 전역변수 nextId = 4 # 데이터베이스 역할을 할 리스트 topics = [ {'id': 1, 'title': 'A', 'content': 'This is page A.'}, {'id': 2, 'title': 'B', 'content': 'This is page B.'}, {'id': 3, 'title': 'C', 'content': 'This is page C.'} ] # 중복되는 부분을 함수화함 def template(conten..

7. 쓰기

7.1 회차에서는 웹에서 주고받는 요청의 종류, 그 중에서도 주로 GET과 POST에 대해 설명해주신다. 예전에 공부했던 내용을 되짚어볼 수 있어 좋았다. 7.2 회차에서는 GET만 다루었던 지금까지의 실습과 다르게 코드에 POST를 적용하여, 우리 웹사이트에 접속한 사용자가 데이터베이스에 데이터를 등록할 수 있게 만든다. 노트정리에 적을 만 한 내용이 딱히 없다. 7.2 회차에서 코드를 짜며 알게 된 꿀팁들만 기억하면 될 것 같다. 세 가지가 있었다. 새로 추가되는 데이터의 id를 전역변수를 통해 관리할 수 있음. 변수의 값을 이어붙여 url 문자열을 만들 때에는 변수를 문자열로 변환시키는 것을 잊지 말 것. @app.route() 에서 methods를 지정해주지 않으면 기본적으로 GET만 받도록 설정..

6. 읽기

6회차 강의에서 해야 할 내용을 5회차 강의 때 앞질러 해버렸다... 머쓱하군. 그래서 이번 회차에서는 5회차 때 완성했던 코드를 강사님의 코드와 유사하게 수정해보았다. 내가 5회차 때 썼던 코드와 강사님이 이번 강의에서 쓴 코드의 주된 차이점은 다음과 같다. 리스트의 조회 방법: 나는 인덱스로, 강사님은 for문과 if문으로 조회함. 네비게이터가 모든 화면에 표시됨: 나는 read 화면들에 간단한 문자열 하나만 표시되게 하였지만, 강사님은 메인 화면에 표시되었던 네비게이터가 모든 read 화면의 상단에 표시되게 함. 리턴값의 차이: 나는 화면 표시 함수가 단순한 문자열을 리턴하게 만들었지만, 강사님은 html 코드를 리턴함. 형 변환의 시점: URL에서 받아오는 id는 기본적으로 문자열임. 나는 그 문..

5. 홈페이지 구현

간단한 홈페이지를 만들어보는 회차이다. 코드 강의에 나온 코드를 수정하여 완성한 코드는 아래와 같다. from flask import Flask app = Flask(__name__) topics = [ {'id': 1, 'title': 'A', 'content': 'This is page A.'}, {'id': 2, 'title': 'B', 'content': 'This is page B.'}, {'id': 3, 'title': 'C', 'content': 'This is page C.'} ] # 메인 페이지 @app.route('/') def index(): str= '' # html 코드를 담을 문자열 # for문을 사용하여 str의 내용을 만들기 for topic in topics: str = s..

4. 라우팅

아래와 같은 플라스크 코드가 있다. index() 라는 함수의 위에 @app.route() 라는 것이 붙어있다. 이놈의 역할은 무엇일까? 바로 라우팅이다. 코드를 실행시켰을 때 주어지는 이 URL의 뒤에다가 route()의 괄호 안에 있는 URL을 붙이면 바로 아래에 있는 함수가 실행되는 것이다. URL에서 가장 뒤에 붙은 / 문자는 생략 가능하기 때문에, @app.route('/')는 http://127.0.0.1:5000 에 들어갔을 때 실행될 함수를 지정, 즉 메인페이지의 내용을 결정한다. http://127.0.0.1:5000 에 들어가보자. index() 함수에 적힌 대로 Welcome이 표시된다. 이렇게 어떤 URL에 어떤 내용이 연결될지 정해주는 것이 라우팅이다. 강의 영상에서 보여준 다른 ..

2. 나의 컴퓨터에 개발환경셋팅

수업 소개 회차의 노트정리는 건너뛰고 2부터 적겠다. 플레이리스트에는 2.1 회차와 2.2 회차가 있다. 2.1 회차는 로컬에서 Visual Studio Code를 사용해 개발환경을 세팅하는 내용이다. 2.1을 보고 따라하다가 문제가 생겨 개발환경 세팅에 실패한 사람들이 많을 것이라 한다. 그 사람들이 온라인 툴을 사용해 개발환경을 세팅할 수 있도록 알려주는 회차가 2.2이다. 2.1에서 문제 없이 세팅을 완료한 사람은 2.2를 들을 필요가 없다. 그러므로 나는 2.1 강의의 노트정리만 남기겠다. 이 강의에서의 Flask 개발은 Visual Studio Code로 진행된다. 이번 회차에서는 플라스크를 설치하고 (깃에 연결하고) 간단한 Flask 파일을 만들어 실행을 시켜본다. 1. 플라스크 설치 Term..

0. 이 강의를 듣는 이유

https://youtube.com/playlist?list=PLuHgQVnccGMClNOIuT3b3M4YZjxmult2y Python Flask Web Framework www.youtube.com 장고의 쓴맛을 본 뒤... Java와 Spring에 열정을 바치겠다고 다짐한 지 얼마 되지 않은 지금... 갑자기 Python 프레임워크인 Flask를 공부하는 것은... 오픈SW플랫폼 수업의 팀 프로젝트에 사용하기 위해서이다. 교수님께서 수업 중 Flask를 가르쳐주겠다고 하셨지만... 다년간의 경험에 의하면... 수업에서 배운 내용만으로 개발을 수월하게 해낼 수 있었던 적이 한 번도 없다... 교수님만 믿고 Flask를 하나도 공부하지 않은 채 기다리다간 불안감에 잠을 설칠 것이 뻔하다! 나 혼자 하는 ..