0Pricing
Python Academy · 강의

라우트와 뷰

HTTP 요청 처리하기

라우트와 뷰은(는) CoddyKit의 무료 Python Academy 강의입니다. 이것은 4개 중 1번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 Python Academy 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. Python Academy 강의에는 총 4개의 강의가 포함되어 있습니다.

Flask란 무엇인가요

Flask는 가벼운 Python 웹 프레임워크입니다. 상용구 코드를 거의 작성하지 않고도 웹 앱과 API를 만들 수 있습니다. pip install flask로 설치합니다.

from flask import Flask
app = Flask(__name__)
print('Flask app created:', app.name)

앱 만들기

모든 Flask 앱은 app = Flask(__name__) 객체에서 시작합니다. __name__ 인수는 Flask가 템플릿과 같은 리소스의 위치를 찾는 데 도움을 줍니다.

from flask import Flask
app = Flask(__name__)
if __name__ == '__main__':
    # app.run() starts the development server
    print('App is ready to run')

첫 번째 라우트

route는 URL을 함수인 뷰에 연결합니다. @app.route() 데코레이터가 경로를 연결하고, 함수의 반환 값이 응답 본문이 됩니다.

from flask import Flask
app = Flask(__name__)

@app.route('/')
def home():
    return 'Hello, world!'
print('Route / -> home')

여러 라우트

원하는 만큼 라우트를 정의할 수 있습니다. 각 경로에는 고유한 뷰 함수가 지정됩니다.

from flask import Flask
app = Flask(__name__)

@app.route('/')
def home():
    return 'Home page'

@app.route('/about')
def about():
    return 'About page'
print('Two routes defined')

동적 URL 구성 요소

<variable>을 사용하여 URL의 일부를 추출합니다. Flask는 이를 뷰에 인수로 전달합니다.

from flask import Flask
app = Flask(__name__)

@app.route('/user/<username>')
def show_user(username):
    return 'Profile of ' + username
print('URL /user/alice -> show_user')

형 변환기

<int:post_id>와 같은 변환기를 추가하면 Flask가 값을 검증하고 올바른 형식으로 변환합니다.

from flask import Flask
app = Flask(__name__)

@app.route('/post/<int:post_id>')
def show_post(post_id):
    return 'Post number ' + str(post_id)
print('post_id arrives as an int')

HTTP 메서드

기본적으로 라우트는 GET을 처리합니다. methods=['GET', 'POST']를 전달하면 다른 메서드도 허용할 수 있습니다.

from flask import Flask
app = Flask(__name__)

@app.route('/submit', methods=['GET', 'POST'])
def submit():
    return 'Handled GET or POST'
print('submit accepts GET and POST')

메서드 확인하기

뷰 안에서 request.method를 사용하면 어떤 메서드가 사용되었는지 확인하여 로직을 분기할 수 있습니다.

from flask import Flask, request
app = Flask(__name__)

@app.route('/submit', methods=['GET', 'POST'])
def submit():
    if request.method == 'POST':
        return 'Form submitted'
    return 'Show the form'
print('Branch on request.method')

상태 코드 반환하기

(body, status_code) 튜플을 반환하여 HTTP 상태를 설정합니다. 예를 들어 찾을 수 없을 때는 404를 사용합니다.

from flask import Flask
app = Flask(__name__)

@app.route('/missing')
def missing():
    return 'Not here', 404
print('Returns body with status 404')

URL 구성하기

url_for('view_name')은 뷰 이름으로 URL을 생성합니다. 이렇게 하면 나중에 변경될 수 있는 경로를 코드에 직접 작성하지 않아도 됩니다.

from flask import Flask, url_for
app = Flask(__name__)

@app.route('/about')
def about():
    return 'About'
# url_for('about') -> '/about'
print('url_for builds URLs by view name')

서버 실행하기

app.run(debug=True)을 호출하여 개발 서버를 시작합니다. 디버그 모드에서는 변경 사항이 있을 때 서버를 다시 불러오고 유용한 오류 페이지를 표시합니다.

from flask import Flask
app = Flask(__name__)

@app.route('/')
def home():
    return 'Hi'

if __name__ == '__main__':
    app.run(debug=True)

간단한 확인

라우팅에 대한 지식을 확인합니다.

복습

Flask 라우트와 뷰를 만들었습니다.

  • app = Flask(__name__)은 앱을 생성합니다
  • @app.route()는 URL을 뷰 함수에 연결합니다
  • <int:id>는 동적인 URL 구성 요소를 추출하고 변환합니다
  • methods=와 request.method는 HTTP 메서드를 처리합니다
  • url_for()는 URL을 구성하고 app.run()은 서버를 시작합니다

자주 묻는 질문

“라우트와 뷰” 강의는 무료인가요?

네 — “라우트와 뷰” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 Python Academy 강의 전체를 잠금 해제할 수 있습니다. Python Academy 강의에는 총 4개의 강의가 포함되어 있습니다.

“라우트와 뷰”에서 뭘 배우나요?

HTTP 요청 처리하기 브라우저에서 직접 실행하는 실습 코드로 Python Academy을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.

Python Academy을(를) 시작하는 데 경험이 필요한가요?

사전 경험은 필요하지 않습니다. CoddyKit의 Python Academy은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 1번째 강의입니다.

“라우트와 뷰” 강의는 얼마나 걸리나요?

대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.

이 Python Academy 강의에서 코드를 작성하고 실행할 수 있나요?

네. 모든 Python Academy 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.

이 강의의 모든 강의

  1. 라우트와 뷰
  2. Jinja2 템플릿
  3. 폼과 요청 데이터
  4. REST 엔드포인트 만들기
← Python Academy(으)로 돌아가기