땅지원
땅지원's Personal blog
땅지원
전체 방문자
오늘
어제
  • 전체 (353)
    • Frontend (2)
      • React (2)
    • Backend (90)
      • Java (16)
      • Python (19)
      • Spring (23)
      • Database (21)
      • Troubleshooting (8)
    • DevOps (27)
      • ELK (13)
    • CS (40)
    • OS (2)
      • Linux (2)
    • Algorithm (95)
      • concept (18)
      • Algorithm Problem (77)
    • 인공지능 (25)
      • 인공지능 (12)
      • 연구노트 (13)
    • 수업정리 (35)
      • 임베디드 시스템 (10)
      • 데이터통신 (17)
      • Linux (8)
    • 한국정보통신학회 (5)
      • 학술대회 (4)
      • 논문지 (1)
    • 수상기록 (8)
      • 수상기록 (6)
      • 특허 (2)
    • 삼성 청년 SW 아카데미 (6)
    • 42seoul (12)
    • Toy project (3)
    • 땅's 낙서장 (2)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

  • 20.11.6 BB21플러스 온라인 학술대회
  • 20.10.30 한국정보통신학회 온라인 학술대회

인기 글

태그

  • ㅗ
  • I
  • 이것이 리눅스다 with Rocky Linux9
  • D
  • E

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
땅지원

땅지원's Personal blog

Backend/Python

Python Flask 웹 페이지 제작(1) - 구조, Route

2021. 12. 21. 18:50

Flask

Python으로 웹 개발을 할 때 많이 쓰이는 프레임워크로는 Django이지만 너무 무겁고 기능이 많아서 복잡

라이트한 개발을 위해 사용되는 Flask에 대해 공부 및 정리를 해보려고 한다.

Content

 - Route - URL에 웹페이지 연결하기(고정 URL)

 - Route - URL에 웹페이지 연결하기(동적 URL)

 - HTML 렌더링

 

Directory

project

└static

    └style.css

    └ ...

└templates

    └index.html

    └ ...
    
└run.py

run.py

from flask import Flask

app = Flask(__name__)

@app.route('/')
def home():
    return 'Hello, World!'
    
if __name__ == '__main__':
    #app.run('127.0.0.1', 5000, debug=True)
    app.run(debug=True)

app.run() 괄호 안에 debug=True 라고 명시하면 해당 파일의 코드를 수정할 때 마다 Flask가 변경된 것을 인식하고 다시 시작한다.

 

Route - URL에 웹페이지 연결하기(고정 URL)

URL을 방문 할 때 준비된 함수가 트리거되도록 바인딩 하기 위해 route() 데코레이터를 사용한다.

 

*** 데코레이터란?

- @로 시작하며 함수를 수정하지 않은 상태에서 추가 기능을 구현할 때 사용

from flask import Flask

app = Flask(__name__)

@app.route('/')
@app.route('/home')
def home():
    return 'Hello, World!'
    
@app.route('/user')
def user():
    return 'Hello, User!'
    
if __name__ == '__main__':
    app.run(debug=True)

http://127.0.0.1:5000/ 뒤에 '/home'이라고 해도 동일하게 Hello world! 가 출력되는 페이지가 뜰 것이고

'/user'로 접속하면 Hello user!가 뜰 것 이다.

 

@app.route('/경로') 를 쓸 때 URL 경로는 반드시 “/” (슬래시)로 시작해야 한다.

 

Route - URL에 웹페이지 연결하기(동적 URL)

from flask import Flask

app = Flask(__name__)

@app.route('/')
@app.route('/home')
def home():
    return 'Hello, World!'
    
@app.route('/user/<user_name>/<int:user_id>')
def user(user_name, user_id):
    return f'Hello, {user_name}({user_id})!'
    
if __name__ == '__main__':
    app.run(debug=True)

'/user/유저이름/유저아이디' 형식의 URL을 입력 받았을 때 유저이름과 유저아이디를 활용한 내용의 HTML 문서를 반환 가능

<int:user_id> 구문은 <converter : variable_name> 구문을 사용하여 URL에서 받은 변수 타입을 변형

<converter types>

● string(default) : slash가 포함되지 않은 문자열

● int

● float

● path : slash가 포함된 문자열

 

'Backend > Python' 카테고리의 다른 글

Python Flask 웹 페이지 제작(3) - Form  (0) 2021.12.21
Python Flask 웹 페이지 제작(2) - Jinja2 템플릿  (2) 2021.12.21
Python Flask + mysql 웹 기반 어플리케이션 제작  (0) 2021.11.27
백준 코딩 연습  (0) 2021.09.27
리얼센스 code  (0) 2021.02.09
    'Backend/Python' 카테고리의 다른 글
    • Python Flask 웹 페이지 제작(3) - Form
    • Python Flask 웹 페이지 제작(2) - Jinja2 템플릿
    • Python Flask + mysql 웹 기반 어플리케이션 제작
    • 백준 코딩 연습
    땅지원
    땅지원
    신입 개발자의 우당탕탕 기술 블로그

    티스토리툴바