21.11.03 7주차 1-2 서비스 다루기

2021. 11. 3. 22:55작업/Flask

Blueprint : 길어진 코드를 모듈화해줘서 수정 개발과 유지보수에 용이하도록 해주는 것

(blueprint 사용하지 않으면 @app.route() 수 =  API 수 매우 많음.)

Before
After

app.py는 오로지 서버 실행에만 집중 가능

Blueprint는 Flask랑 매우 비슷한 문법

 

실습 1 Blueprint로 서버 코드 분리하기

 

Jinja 템플렛 : python에서 가장 많이 사용되는 템플릿. 서버에서 받아온 데이터를 효과적으로 보여줌

html내에서 python문법을 사용할 수 있다.

python 파일에서 정의한 변수를 jinja html에서 나타내기 {{어쩌구}}

 

jinja에서 list를 넘겨주고, 반복문 사용 {% endfor %}로 끝내줘야한다.

 

jinja에 dictionary 넘겨주기. key값으로 get한다.

 

실습 2 Jinja Template 사용해서 화면에 데이터 나타내기 - 단일 데이터

 

실습 3 Jinja Template 사용해서 화면에 데이터 나타내기 - 리스트 데이터

실습 4 Jinja Template 사용해서 화면에 데이터 나타내기 - 딕셔너리 데이터

 

실습 5 Jinja Template 사용해서 화면에 데이터 나타내기 - 혼합형 데이터

 

CRUD 작업과 HTTP method, DB SQL 명령어 

Create - POST - INSERT

Read - GET - SELECT

Update - PUT, PATCH, POST - UPDATE

Delete - DELETE - DELETE

 

실습 6 게시글 생성 및 읽기 return redirect(url_for(html이름))    return render_template('어쩌구.html', 변수 = 어쩌구 )

url_for('index') 는 index 함수로 가기 떄문에 route('/')로 간다.

실습 7 게시글 수정 및 삭제 request.form['name']    request.form['context'] 

 

Authentication(인증) vs Authorization(권한)

인증 = 사용자가 누구인지 확인하는 과정 ex 로그인

쿠키

쿠키는 웹 브라우저(클라이언트) 에 저장된다. 쿠키는 내 컴퓨터에 저장되는 게 아니다.

세션는 서버에서 관리하는 데이터, 클라이언트한테 고유한 ID를 부여한다

 

로그인

로그아웃

실습 8 로그인 기능 구현 if name in userinfo:   session['login']=True     userinfo[request.form['username']] = request.form['password']

 

로깅 : 프로그램이 작동할 때 발생하는 이벤트를 추적하는 행위

(문제를 파악, 유지보수, 발생한 에러를 추적)

실습 9 로깅 구현 app.logger.error(err)