[대구AI스쿨] #5 파이썬 기초 Flask - 단하나의 파일 수정만으로 1억개의 웹페이지를 한번에 수정하는 일잘러

0

AI스쿨 학습기록

목록 보기
6/14
post-thumbnail

대구시와 microsoft협약 교육을 통해 AI프로덕트 마케터 과정을 수강중입니다. 수정중

오늘의 학습 미리보기
파이썬 기초 - 플라스크
1.웹프레임워크의 개념
2.라우팅
3.템플릿
필요 지식 : 반복문, 함수

1. 발상의 시작 - 그래서 flask? web framework가 뭔데?

우리모두 두가지 상황을 상상해보자.

첫째,
우리의 웹사이트는 1억개의 웹페이지로 이루어져있다. 이떄, ol태그를 ul태그로 바꿔 달라는 요청을 받았다고 생각해보자

1억개의 페이지를 수정하기 위해 얼마나 시간이 걸릴까?
1페이지를 수정하는데 0.1초가 걸린다고 가정해도 115일이 걸린다.

하지만 가능하다!

단하나의 파일 수정만으로 1억개의 페이지 수정이!
또는 사용자의 투고를 받아서 웹사이트 운영도!(가능하다)

둘째,
지금으로서는 이메일, 편지등 다른방식으로 피드백을 받아 내가 직접 홈페이지를 고쳐야 한다

하지만

입력양식에 사용자들이 직접 내용을 입력,저장함으로써 페이지가 만들어질수 있다면?
또사용자가 누군지 구분해서 사용자에게 최적화된 웹페이지를 보여줄수 있다면?

웹페이지를 만드는 공장을 만드는것이 플라스크
어떤 웹페이지를 만들더라도 대부분의 공통적인 부분이 있다. 이러한 작업을 미리 해놓은것이 web framework이다.

공통적이고 기본적인 작업은 web framework에 맡기고 나는 더 고차원적이고 개성을 살리는 웹페이지를 만드는데 집중할수 있다!

각언어의 다양한 프레임워크가 있다.
파이썬의 대표 프레임워크가 flask이다
적은노력으로 많은 작업을 가능케 하는 플라스크!

flask 설치 및 시작

터미널-새터미널
pip3 install flask입력(또는 pip입력.파이썬 버전에 따라 다름)
server.py파일 만들기
코드 복사 붙여넣기 (http://bit.ly/flask-tutorials-setup)

포트 끄는법

플라스크는 5000번 포트에서 listening을 하는데, 5000번 포트에서 먼저 실행된 서버가 있다면실행을 거부할수 있다.
따라서 포트를 변경하거나, 이미 실행되는 서버를 꺼야한다.

입력
app.run(port=5001)

코드를 변경한 후에는 ctrl+C를 눌러서 플라스크 실행을 꺼야함.
그러고 다시 위쪽 화살표 키를 누르면 코드를 가져올수 있음.

의문점 - 코드변경할때마다 이렇게 하기는 너무 불편한데

그렇다면 코드를 변경할때마다 flask가 꺼졌다 켜지게 할 순 없을까?

솔루션 - 디버깅 모드

app.run(port=5001, debug=True)라고 추가로 입력하면 디버깅 모드로 플라스크를 실행시킬수 있다.
contrl+C로 플라스크를 끈후, 다시 ↑로 실행시키면 debugger is active!라는 문구가 뜬다
그럼 디버깅 모드가 실행된거다!

편의를 위한것이기 떄문에 실제 서비스할때는 디버깅 모드를 사용하면 안된다

여기까지 컴퓨터에 개발환경 세팅이 어렵다면?

온라인 서비스를 이용할수 있다.
그 중 글리치를 이용하려한다.
무료로 온라인에서 컴퓨터를 빌려주는것이라 생각하면된다.

http://bit.ly/flask-glitch
에서 이고잉님이 제공하는 개발환경 코드을 사용할수 있다.
우측상단 remix를 누르면 환경복제가 가능하다

-플라스크 웹사이트 접속
https://flask.palletsprojects.com/en/2.1.x/
-installation 클릭

플라스크를 사용하는 이유

랜덤 값을 사용자에게 제공해야될 경우 플라스크를 이용할수 있다.

파이썬의 모듈중에 랜덤모듈, 랜덤함수를 이용할수 있다.
import random,
return random.random()
이렇게 하면 에러가 난다.
왜? return 값은 문자열에 응답하기 때문.
따라서 숫자를 문자로 바꿔주는 str(random.random())로 감싸준다.

파이썬코드 return str(random.random())
html코드 return 'random : '+str(random.random())+''

2. 라우팅

라우팅 이란?

웹프레임워크를 접하고 가장 먼저 가져야 할 생각
"이 웹프레임워크는 라우팅은 어떻게 해?"
웹프레임워크가 하는 가장 본질적인 일이 라우팅이다.

  • 라우팅을 상상해보자
    다양한 서버의 주소가 있다.
    각각의 주소에서 들어오는 요청을 담당할 담당자가 필요하다.
    플라스크에서는 함수가 담당자이다.
    어떤 주소를 누가 담당할것인가,
    어떤 요청을 어떤 함수가 담당할것인가
    연결하는 작업을 라우팅이라함

라우팅 방법

플라스크 홈페이지- 퀵스타트-라우팅 에서
어떻게 라우팅을 하는지 예제를 엿볼수 있다.

느낀점

오늘 수업은 평소보다도 좀 더 어려웠다.
더군다나 이전 진도에서 제대로 이해하지 못한 부분이 있었다면 바로바로 따라가기가 쉽진않았다.
비전공자입장에서는 아무리 간단한 개념도 모든게 새롭기때문에, 하루 3시간의, 어느덧 2주차의 수업만으로도 실력차이가 날수 있는 상황이다
사실 가장 중요한 첫주차 수업때 자격증 시험때문에 수업듣는것 이상의 복습,학습을 하지 못해서 밀린 복습들이 계속해서 누적되고 있는 상항이다.
예상은 했었지만 하루 학습량이 꽤 크다. 그만큼 하루 학습량 누락의 여파 또한 꽤 크다
하루 3시간 수업중 복습 및 기타시간 제외하고 2시간정도만 빠삭하게 내것으로 만든다는게 왜이리 시간이 오래걸리고 힘든지 ㅠㅠ
수업 이해자체가 어려운건아닌데 간단한것도 이유모를 오류나, 실행이 바로 되질않을때는 정말 난감하다
모든게 새롭고 아직 쉽지는 않다!
하지만 아무리 어려운것도 10단계로 나눠, 반복하면 누구나 반드시 할수 있다했다
이해못할 개념 정리에 당황하지말고, 그냥 손으로 일단 무식할정도로 익혀보자. 그러고 안되면 이해를 해보자(하지만 대부분 손으로 익히는 과정에서 머리로 이해하는게 불필요할듯하다)
그냥 오늘 하루에 내가 충실했는지 되새기면서 묵묵히 하다보면 어느새 많이 성장해있지 않을까 싶다.
이번 주말내내 java랑 python 복습에만 매달려야겠다.

profile
비전공자가 6개월안에 프로덕트 마케터 전문가로 거듭나는 과정, 느낌을 적나라하게 기록합니다. 문과생 관점에서 새롭게 접근하고 해석하는 감성코딩

0개의 댓글