Python flask 기초

UICHEOL_HWANG·2023년 8월 21일

파이썬기초

목록 보기
12/12

가상환경 만들기

C:\Users\>cd C:/Users/Desktop/bigdata
C:\Users\Desktop\bigdata>cd github
C:\Users\Desktop\bigdata\github>python -m venv venv

github라는 폴더를 만들어서 venv라는 가상환경을 만들어준다


flask 만들기

웹서버 배포

from flask import Flask, render_template, request

calc = Flask(__name__)

@calc.route("/")
def index():
    return render_template("/calc/calc_form.html")

calc_form.html이라는 서버로 이동을 해라

route가 이동시켜줌

계산기 만들어주기

<div class="container">
        <h1>사칙연산 프로그램 Flask</h1>
        <form action="/caculator" method="POST">
            <input type="text" name="num1">
            <select name="oper" id="num1">
                <option value="+">+</option
                <option value="-">-</option>
                <option value="*">*</option>
                <option value="/">/</option>
            </select>
            <input type="text" name="num2">
            <input type="submit" value="계산">
        </form>
        <p> 계산결과 : {{ result }}</p>
@calc.route("/calcuator", method=["POST"])
def calcuator():
    num1 = int(request.form["num1"])
    num2 = int(request.form["num2"])
    oper = request.form["oper"]
    result = 0
    if oper == "+":
        result = num1 + num2

form 액션이 calc.py라는 파일로 보내라는 action의 설명

num1 num2로 받아주는 함수로 request로 작성하고,

@calc.route("/calcuator", methods=["POST"])
def calcuator():
    num1 = int(request.form["num1"])
    num2 = int(request.form["num2"])
    oper = request.form["oper"]
    result = 0
    if oper == "+":
        result = num1 + num2
    elif oper == "-":
        result = num1 - num2
    elif oper == "*":
        result = num1 * num2
    elif oper == "/":
        result = num1 / num2
    else:
        result = "없는 계산입니다."
    return render_template("/calc/calc_form.html", result_html=result)

if __name__ == "__main__":
    calc.debug = True
    calc.run()
@calc.route("/calcuator", method=["POST"]) 는 submit이 되면 다시 calculator로 넘어가게 된다 
# 결과를 calculator의 결과를 
result_html로 보내준다 
return render_template("/calc/calc_form.html", result_html=result)

render_template로 보내주는 작업임 

결과창

profile
개발 취미로 하는 세일즈맨

0개의 댓글