Python flask

장보운·2022년 5월 20일
0

오늘은 python flask에 대해 알아보자! 🤟🤟

기억하기 위한 나만의 기록장!!

python Flask, 🤓

  • 파이썬으로 웹 어플리케이션을 만드는 마이크로 웹 프레임워크
    ❗여기서 잠깐❗ 마이크로 프레임워크란? 마이크로 프레임워크란 핵심 기능만 간결하게 유지하지만, 확장 가능한 것을 목적으로 하는 프레임워크이다.
  • 자바 기반 웹 프레임워크로는 대표적으로 Spring이 있듯이, 파이썬 기반 웹 프레임 워크로는 대표적으로 Flask, (Django)가 있는 것
  • 파이썬 기반으로 웹 개발을 하고싶을 때 사용가능

Flask 설치! 🥸

  1. Flask를 설치하기 전에 python 설치하는건 잊지말자!
  2. python 설치 후 pip가 있는지 pip --version 하여 확인!
  3. pip 확인 후 pip install flask 고고씡

VScode에서 가상환경 😬

test.py 라는 폴더를 만들고
예시 소스로

from flask import Flask

app = Flask(__name__)
    
@app.route('/')
def home():
   return 'Hello, World!'
            
if __name__ == '__main__':
    app.run(host="0.0.0.0", port="5000")

실행을 하려고 하자 해당 ip가 존재하지 않는다는 오류가 발생하였다!!

문제 해결방법! 🧐

https://itsjh.tistory.com/49

(test) D:\home>set FLASK_APP=test.py
(test) D:\home>set FLASK_ENV=development
(test) D:\home\prisma>flask run * Serving Flask app 'test.py' (lazy loading) * Environment: development * Debug mode: on * Running on http://127.0.0.1:5000 (Press CTRL+C to quit) * Restarting with stat * Debugger is active! * Debugger PIN: 518-994-383
127.0.0.1 - - [29/Mar/2022 15:51:50] "GET / HTTP/1.1" 200 -
127.0.0.1 - - [29/Mar/2022 15:51:50] "GET /favicon.ico HTTP/1.1" 404 - * Detected change in 'D:\\home\\test\\test.py', reloading * Restarting with stat * Debugger is active! * Debugger PIN: 518-994-383
127.0.0.1 - - [29/Mar/2022 15:52:04] "GET / HTTP/1.1" 404 -
127.0.0.1 - - [29/Mar/2022 15:52:11] "GET /test HTTP/1.1" 200 -코드를 입력하세요

항상 고정되어 있는 ip로는 접속이 되었지만 내 ip로는 접속이 불가하여 찾아봤더니 방화벽문제도 있었다,,!

flask Route 사용해보기! 🤠

여기서 route란, 외부 웹브라우저에서 웹서버로 접근 시 해당 주소로 입력을 하게 되면 특정 함수가 실행되게 도와주는 기능을 말한다! 헷갈린다면 밑에 예시 소스를 보고 이해해보자!

반복문을 사용하여 get값으로 보내는 숫자만큼 나오는 함수를 만들어보았다.
예시소스를 보듯이, route를 사용하여 해당 ip 또는 127.0.0.1:5000로 이동하고 만든 주소를 입력하면 내가 설정한 함수의 값이 리턴되는 것!
위에 설명을 읽고 나서 예시 소스를 보면 조금 더 이해가 쉬울 것이다!! 아마두~

from flask import Flask, request
import json

app = Flask(__name__) 

@app.route('/test/<temp>', methods=['GET']) 
def home(temp): 
    i_temp=int(temp)
    str_rtn=''
    for idx in range(i_temp):
        str_rtn +=f', {idx}'
 
    return str_rtn
    
if __name__ == '__main__':
    app.run(host="0.0.0.0", port="5000")

저 반복 소스 url을 temp로 하고 밑에서 int로 자료형 선언을 해줄 필요 없이 바로 url에서 가능하다는 이야기를 듣고 바로 수정해보았다~

@app.route('/test2/<int:num>', methods=['GET'])
def home2(num):
    num_s = ''
    for idx2 in range(num):
        num_s += f'{idx2}, '
        
    return num_s

확인창 🤩


마지막으로, VScode에서 가상환경 설정방법 😅

https://chunggaeguri.tistory.com/entry/vscode-vscode-%EA%B0%80%EC%83%81%ED%99%98%EA%B2%BD-%EA%B2%BD%EB%A1%9C-%EC%84%A4%EC%A0%95%ED%95%98%EB%8A%94-%EB%B2%95
난 요기서 도움을 받을 수 있었다~~

python을 처음 해보다보니 반복문 짜는데도 힘들었다... 그래도 해결할 수 있어 다행이다!! 다음번에는 json 형식으로 메모장에 내용을 입력하여 브라우저에 뜨게 하는 소스를 만들어보자!

profile
호기심이 많은 개발자

0개의 댓글