본문 바로가기
파이썬

[파이썬] 파이썬(flask)기반 웹 프로그래밍 공부하기 2

by 딩박사 2021. 6. 10.
반응형

* 본 포스팅은 한국품질재단 취업지원센터에서 주최하는 혁신성장 청년인재 집중 양성사업(인공지능)에서 학습한 내용을 포스팅합니다.


https://kks2140501.tistory.com/4

 

[파이썬] 파이썬(flask)기반 웹프로그래밍 공부하기 1

* 본 포스팅은 한국품질재단 취업지원센터에서 주최하는 혁신성장 청년인재 집중 양성사업(인공지능)에서 학습한 내용을 포스팅합니다. 플라스크(Flask)란?? 플라스크(Flask)는 파이썬으로 작성된

kks2140501.tistory.com

※ 심화 과정에 대한 포스팅


 상황) 클라이언트가 서버 측에 페이지를 요청할 때, 데이터를 전달하고 싶다

         ex) 로그인, 검색, 게시판 글 상세보기, 게시판 페이지 이동

 

 

 

 

- 데이터를 서버로 보내는 방식

    1. method(메소드)

        - GET : 가장 일반적, 작은 양의 데이터를 전송, 보안에 취약, 주소 뒤에? 키=값&키=값을 붙인다

        - POST : 보안에 우수, 대량의 데이터 전송 가능, 데이터 숨겨서 전송됨

    2. 동적 파라미터 방식

        - URL에 실어서 전송, 보안에 취약, 간편하게 사용 시

 

 

 

▶ 동적파라미터 방식 실습

 

1. 모듈 가져오기, 앱 생성, 라우팅, 웹서비스 제공 서버 가동

from flask import Flask

app = Flask(__name__)

@app.route('/')
def home():     
    return '<h1>홈페이지</h1>'
    
if __name__ == '__main__':
    app.run( debug=True )

 

 

 

 

- 동적 파라미터 적용 기본

@app.route('/news/<news_id>')
def news(news_id):     
    return f'클라이언트가 전달한 데이터 [{news_id}]'

- <news_id> : 여기에 뉴스 아이디를 넣어서 주소창에 넣으면 된다

ex) ~/news/948djdj3w9erkd,  ~/news/1234567890

 

 

= 실행 후 브라우저에서 'http://127.0.0.1:5000/news/948djdj3w9erkd'에 접속한 결과


 

- 데이터를 1개 이상 서버 측으로 전달하기

@app.route('/news2/<news_id>/<news_title>')
def news2(news_id, news_title):     
    return f'클라이언트가 전달한 데이터 [{news_id}][{news_title}]'

ex) ~/news2/123/제목

 

 

= 실행 후 브라우저에서 'http://127.0.0.1:5000/news2/123/제목'에 접속한 결과


 

- 타입 제한 -> int, float, path

@app.route('/news3/<int:news_id>')
def news3(news_id):     
    return f'클라이언트가 전달한 데이터 [{news_id}]'

- news_id는 정수 값으로만 와야 한다

- 형식을 지키지 않고 요청하면 전부다 404 Not Found(해당 페이지는 없다) 처리

 

 

= 실행 후 브라우저에서 'http://127.0.0.1:5000/news3/123'에 접속한 결과

 

= 실행 후 브라우저에서 형식을 지키지 않은 요청 결과


 

- path → 서버 측으로 전달할 내용을 무한대로 가변적으로 확장할 수 있다

@app.route('/news4/<path:news_id>')
def news4(news_id):
    datas = news_id.split('/')     
    # 데이터를 추출하고 사용을 리스트의 인덱싱 형식으로 사용
    return f'클라이언트가 전달한 데이터 [{ datas[0] }]'

 

 

= 실행 후 브라우저에서 'http://127.0.0.1:5000/news3/123'에 접속한 결과

 

 

 

3에서 계속...

반응형

댓글