플라스크 flask

현준·2024년 7월 9일

사관학교

목록 보기
14/23

flask 설치

!pip install flask
  • 동기
    속도가 느림

flask 기본 구조

  1. Flask(__name__)
    -> flask 초기화

  2. @app.route('/')
    -> 라우팅

  • 라우팅 할때마다 함수가 붙어야함
  1. app.run(host='', port= )
    -> host에 적힌 ip랑 port로 웹 서버 구동
  • flask는 기본적으로 5000 포트번호를 사용한다
if __name__ == "__main__":

  • 직접 사용할때는 위 임포트는 아래로 출력값이 나옴

실습1

from flask import Flask

app = Flask(__name__)

@app.route('/')  # 웹서버의 root경로 (ip와 포트 번호만 입력하면 들어와지는 경로)
def index():
    return "Hello flask!"

if __name__ == "__main__":
    app.run(host='192.168.0.10', port = 5000)

라우팅 연결 실습


from flask import Flask

app = Flask(__name__)

@app.route('/')  # 웹서버의 root경로 (ip와 포트 번호만 입력하면 들어와지는 경로)
def index():
    return "Hello flask!"

# 새로운 경로 설정
@app.route('/route1')
def route1():
    return "1번 라우터에 연결하였습니다"


if __name__ == "__main__":
    app.run(host='192.168.0.10', port = 5000)
    
    

HTML 문서 가져오기

from flask import Flask, render_template

app= Flask(__name__)

@app.route('/')
def index():
    return render_template('index.html')

if __name__ == "__main__":
    app.run(host='192.168.0.10', port=5000)

로그인 실습2
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <form action="/login_ok" method="get">
        <!-- 
        id input name = id type = text
        pw input name = pw type = password
        제출 type = submit
        -->
        <table>
            <tr>
                <td align="center">
                    ID :
                </td>
                <td>
                    <input type="text" name="id" id="">
                </td>
            </tr>
            <tr>
                <td align="center">
                    PW :
                </td>
                <td>
                    <input type="password" name="pw" id="">
                </td>
            </tr>
            <tr>
                <td colspan="2">
                    <input type="submit" value="제출">
                </td>
            </tr>
        </table>
    </form>
</body>

</html>


"GET /login_ok?id=qwer&pw=4567

	id = request.form.get("id")
    pw = request.form.get("pw")

파일 업로드

from flask import Flask, render_template, request

# 직접 라우팅
# '/' 경로는 index()함수, upload.html이 렌더링되게
# '/upload' 경로는 upload() 함수, 들어오면 '업로드 라우터!' 라는 글이 보이게
# '/upload' 경로는 POST 요청만 받을 수 있게

app = Flask(__name__)

@app.route('/')
def index():
    return render_template('upload.html')

@app.route('/upload', methods =["POST"])
def upload(): # 함수명은 위에와 같이 하는게 좋다
    file = request.files["file"]
    file_name = file.filename
    
    if(file_name == ""):
        return "선택한 파일이 없습니다"
    
    file.save(f'./static/upload/{file_name}')
    
    return "파일이 성공적으로 업로드 되었습니다."

if __name__ == "__main__":
    app.run(host='192.168.0.10', port=5000)


0개의 댓글