플라스크 (웹 프레임워크)
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.
1. 개요
플라스크(Flask)는 2004년 Armin Ronacher가 개발한 파이썬(Python) 웹 프레임워크이다. 원래 만우절 농담으로 시작되었으나, 인기를 얻어 본격적인 애플리케이션으로 발전했다. Werkzeug, Jinja, MarkupSafe, ItsDangerous 등의 구성 요소를 기반으로 하며, 개발 서버 및 디버거, Jinja2 템플릿 엔진, RESTful 요청 디스패칭, 유닛 테스트 지원, 보안 쿠키, WSGI 1.0 준수, 유니코드 지원 등 다양한 기능을 제공한다. GitHub에서 파이썬 웹 개발 프레임워크 중 Django에 이어 두 번째로 많은 별을 받았으며, 2018년부터 2022년까지 파이썬 개발자 설문 조사에서 가장 인기 있는 웹 프레임워크로 선정되었다.
더 읽어볼만한 페이지
- 파이썬 웹 프레임워크 - 장고 (웹 프레임워크)
장고는 파이썬으로 작성된 오픈 소스 웹 프레임워크로서, MTV 디자인 패턴을 따르고 빠른 웹 개발과 깔끔한 디자인을 장려하며 다양한 내장 애플리케이션과 외부 패키지를 통한 기능 확장이 가능하다. - 파이썬 웹 프레임워크 - Zope
Zope는 파이썬으로 작성된 오픈 소스 웹 애플리케이션 프레임워크이자 애플리케이션 서버로서, 객체 데이터베이스를 사용하여 웹 사이트 콘텐츠를 관리하며, HTML 템플릿 생성을 위한 DTML과 ZPT를 제공하고, Plone CMS 및 ERP5의 기반이 되었으며, Zope 3 프로젝트를 통해 BlueBream, Zope Toolkit, Grok 프레임워크 개발에 영향을 주었고, Zope 4와 Zope 5로 지속적으로 발전하고 있다. - 파이썬으로 작성된 자유 소프트웨어 - 캘리버
캘리버는 다양한 전자책 파일 형식과 단말기를 지원하는 오픈소스 소프트웨어로, 편집, 변환, 메타데이터 관리, 라이브러리 검색, 온라인 콘텐츠 수집, 원격 액세스, 전자책 제작 등의 기능을 제공하며, 플러그인을 통해 DRM 제거도 가능하다. - 파이썬으로 작성된 자유 소프트웨어 - 클램윈
클램윈은 ClamAV 엔진 기반의 오픈 소스 백신 소프트웨어로, 트로이 목마, 바이러스, 멀웨어 등 다양한 악성 위협 분석 자료를 제공하며 예약 검사, 수동 검사, 컨텍스트 메뉴 통합 등의 기능을 지원하지만 실시간 감시 기능은 제공하지 않는다. - BSD 라이선스 소프트웨어 - V8 (자바스크립트 엔진)
V8은 구글이 개발한 오픈 소스 자바스크립트 엔진으로, 자바스크립트 코드 실행 속도 향상을 위해 여러 컴파일러를 거쳐 크롬, 노드.js 등에서 활용된다. - BSD 라이선스 소프트웨어 - VP9
VP9는 구글이 개발한 오픈 소스 비디오 코덱으로, VP8보다 압축 효율을 높이고 HEVC보다 나은 성능을 목표로 개발되었으며, WebM 형식으로 사용되고 주요 웹 브라우저와 넷플릭스, 유튜브 등에서 지원했으나 AV1의 등장으로 개발이 중단되었다.
플라스크 (웹 프레임워크) - [IT 관련 정보]에 관한 문서 | |
---|---|
기본 정보 | |
개발자 | 아르민 로나허 |
최초 릴리스 | 2010년 4월 1일 |
최신 릴리스 날짜 | }} |
장르 | 웹 애플리케이션 프레임워크 |
라이선스 | BSD 라이선스 |
프로그래밍 언어 | 파이썬 |
운영 체제 | 크로스 플랫폼 |
웹사이트 | 플라스크 공식 웹사이트 |
2. 역사
Flask는 2004년에 결성된 국제적인 파이썬 커뮤니티 Pocoo의 Armin Ronacher에 의해 개발되었다.[5]
2018년부터 Flask 관련 데이터와 객체는 Bootstrap으로 렌더링될 수 있다.[12]
버전 0.10에서 Python 3에 대응했다.[25]
2. 1. 개발 배경
Flask는 2004년에 결성된 국제적인 파이썬 열성 팬 그룹인 Pocoo의 Armin Ronacher에 의해 만들어졌다.[5] Ronacher는 Flask가 원래 만우절 농담으로 시작되었으나, 큰 인기를 얻어 진지한 애플리케이션으로 발전했다고 밝혔다.[6][7][8] 이름은 이전의 Bottle 프레임워크에서 영감을 받아 지어졌다.[6]2004년 Ronacher와 Georg Brandl이 파이썬으로 작성된 게시판 시스템을 개발하면서, Pocoo 프로젝트인 Werkzeug와 Jinja가 개발되었다.[9]
2. 2. Pallets 프로젝트로의 전환
2016년 4월, Pocoo 팀이 해체되면서 Flask 및 관련 라이브러리의 개발은 새로 결성된 Pallets 프로젝트로 이관되었다.[10][11]2. 3. 인기 및 위상
Flask는 파이썬 개발자들 사이에서 큰 인기를 얻고 있다. 2020년 10월 기준으로, GitHub에서 Django에 이어 두 번째로 많은 별을 받은 파이썬 웹 개발 프레임워크이다.[13] 또한, 2018년부터 2022년까지 여러 해 동안 JetBrains의 파이썬 개발자 설문 조사에서 가장 인기 있는 웹 프레임워크로 선정되었다.[14][15][16][17][18]3. 구성 요소
플라스크는 BSD 라이선스를 따르는 팔레츠 프로젝트(Pallets Projects, 구 포쿠(Pocoo))의 일부이다. 플라스크는 자체적으로 데이터베이스 추상화 계층이나 폼 값 검증 등의 기능을 갖추고 있지 않지만, 확장 기능을 통해 이러한 기능을 추가할 수 있다. 이는 어떤 웹 애플리케이션에도 적합한 기반을 만들기 위한 설계상의 결정이다.[21] 현재 객체 관계 매퍼, 폼 값 검증, 파일 업로드, 사용자 로그인, 다양한 오픈 인증 기술을 지원하는 확장 기능들이 제3자에 의해 제공되고 있다.[22]
3. 1. Werkzeug
Werkzeug|베르크호이그de는 웹 서버 게이트웨이 인터페이스(WSGI) 애플리케이션을 위한 파이썬 유틸리티 라이브러리이다. Werkzeug는 요청, 응답 및 유틸리티 함수에 대한 객체를 인스턴스화할 수 있다. 사용자 지정 소프트웨어 프레임워크의 기반으로 사용될 수 있으며 파이썬 2.7 및 3.5 이상을 지원한다.[19][20]3. 2. Jinja
Jinja는 아르민 로나허(Armin Ronacher)가 개발한 파이썬 프로그래밍 언어를 위한 템플릿 엔진이다. 장고 웹 프레임워크와 유사하게 샌드박스에서 템플릿을 처리한다.3. 3. MarkupSafe
MarkupSafe는 파이썬 프로그래밍 언어를 위한 문자열 처리 라이브러리이다. 동명의 MarkupSafe 클래스는 파이썬 문자열 형식을 확장하며, 내용을 "안전"으로 표시한다. MarkupSafe를 일반 문자열과 결합하면 표시되지 않은 문자열은 자동으로 이스케이프 처리되는 반면, 이미 표시된 문자열은 이중 이스케이프를 방지한다.3. 4. ItsDangerous
ItsDangerous는 파이썬 프로그래밍 언어를 위한 안전한 직렬화 라이브러리이다. 사용자가 세션 내용을 조작하는 것을 허용하지 않고 Flask 애플리케이션의 세션을 쿠키에 저장하는 데 사용된다.4. 기능
플라스크는 다음과 같은 주요 기능들을 제공한다.
- 개발 서버 및 디버거 제공[1]
- 단위 테스트 통합 지원[1]
- REST 요청 디스패칭[1]
- Jinja2 템플릿 엔진 사용[1]
- 보안 쿠키(클라이언트 측 세션) 지원[1]
- 100% WSGI 1.0 준수[1]
- 유니코드 기반[1]
- 구글 앱 엔진 호환[1]
- 확장 기능 제공[1]
- 잘 정비된 문서[1]
다음은 Hello World를 출력하는 단순한 웹 애플리케이션 예제이다:
from flask import Flask
app = Flask(__name__)
@app.route("/")
def hello():
return "Hello World!"
if __name__ == "__main__":
app.run()
4. 1. 기본 기능
- 개발 서버 및 디버거 제공[1]
- 단위 테스트 통합 지원[1]
- REST 요청 디스패칭[1]
- Jinja2 템플릿 엔진 사용[1]
- 보안 쿠키(클라이언트 측 세션) 지원[1]
- 100% WSGI 1.0 준수[1]
- 유니코드 기반[1]
- 구글 앱 엔진 호환[1]
- 확장 기능 제공[1]
4. 2. 확장 기능
Flask는 자체적으로 데이터베이스 추상화 계층, 폼 값 검증 등의 기능을 제공하지 않지만, 다양한 확장을 통해 이러한 기능을 마치 Flask가 처음부터 지원하는 것처럼 추가할 수 있다. 현재 객체 관계 매퍼, 폼 값 검증, 파일 업로드, 사용자 로그인, 다양한 오픈 인증 기술을 지원하는 확장 기능들이 제공되고 있다.[22]5. 예제
다음은 Flask를 사용하여 "Hello World!"를 출력하는 간단한 웹 애플리케이션 예제이다.
```python
from flask import Flask
app = Flask(__name__)
@app.route("/")
def hello():
return "Hello World!"
if __name__ == "__main__":
app.run()
```
이 코드는 Flask 애플리케이션을 생성하고, 루트 경로("/")에 접속했을 때 "Hello World!"를 반환하는 함수를 정의한다.
참조
[1]
웹사이트
Flask Foreword
https://web.archive.[...]
[2]
웹사이트
Flask Extensions
https://web.archive.[...]
[3]
Quora
What challenges has Pinterest encountered with Flask?
http://www.quora.com[...]
[4]
Youtube
Rachel Sanders: Developing Flask Extensions - PyCon 2014
https://www.youtube.[...]
[5]
웹사이트
Pocoo Team
http://www.pocoo.org[...]
[6]
웹사이트
Opening the Flask
http://mitsuhiko.poc[...]
2011-09-30
[7]
웹사이트
April 1st Post Mortem
https://lucumr.pocoo[...]
2010-04-03
[8]
웹사이트
Denied: the next generation python micro-web-framework (April Fools page)
https://web.archive.[...]
[9]
웹사이트
History
https://web.archive.[...]
Pocoo Team
2015-03-25
[10]
웹사이트
Hello Pallets Users
https://palletsproje[...]
2021-05-08
[11]
웹사이트
Pocoo
https://www.pocoo.or[...]
2021-05-08
[12]
웹사이트
Bootstrap-Flask
https://github.com/h[...]
HelloFlask
2022-11-06
[13]
웹사이트
Python libraries by GitHub stars
https://github.com/s[...]
2020-01-27
[14]
웹사이트
Python Developers Survey 2018
https://www.jetbrain[...]
www.jetbrains.com
2018-11-01
[15]
웹사이트
Python Developers Survey 2019
https://www.jetbrain[...]
www.jetbrains.com
2019
[16]
웹사이트
Python Developers Survey 2020
https://www.jetbrain[...]
www.jetbrains.com
2020
[17]
웹사이트
Python Developers Survey 2021
https://lp.jetbrains[...]
www.jetbrains.com
2021
[18]
웹사이트
Python Developers Survey 2022 Results
https://lp.jetbrains[...]
2023-10-17
[19]
웹사이트
Werkzeug The Python WSGI Utility Library
https://www.palletsp[...]
2018-05-27
[20]
웹사이트
Installation, Python Version
https://web.archive.[...]
2020-04-20
[21]
웹사이트
Design Decisions in Flask
http://flask.pocoo.o[...]
2013-02-20
[22]
웹사이트
Extensions Registry
http://flask.pocoo.o[...]
2013-02-20
[23]
웹사이트
Opening the Flask
http://dev.pocoo.org[...]
2011-09-30
[24]
웹사이트
Denied: the next generation python micro-web-framework (April Fools page)
http://denied.immers[...]
2011-09-30
[25]
웹사이트
Pythonの軽量Webフレームワーク「Flask」がPython 3に対応
http://mojix.org/201[...]
2013-06-16
[26]
웹사이트
Python libraries by GitHub stars
https://github.com/s[...]
2020-01-27
[27]
웹사이트
Python Developers Survey 2018
https://www.jetbrain[...]
www.jetbrains.com
2018-11-01
[28]
웹사이트
Python Developers Survey 2019 Results
https://www.jetbrain[...]
2021-05-20
[29]
웹사이트
Python Developers Survey 2020 Results
https://www.jetbrain[...]
2021-05-20
[30]
웹사이트
Python Developers Survey 2021 Results
https://lp.jetbrains[...]
2024-10-08
[31]
웹사이트
Python Developers Survey 2022 Results
https://lp.jetbrains[...]
2024-10-08
[32]
웹사이트
Python Developers Survey 2023 Results
https://lp.jetbrains[...]
2024-10-08
[33]
웹인용
PyPI Flask
https://pypi.python.[...]
null
2016-06-27
[34]
Quora
What challenges has Pinterest encountered with Flask?
http://www.quora.com[...]
[35]
Youtube
Rachel Sanders: Developing Flask Extensions - PyCon 2014
https://www.youtube.[...]
[36]
웹사이트
Community web page for Flask
http://flask.pocoo.o[...]
[37]
웹인용
Flask Foreword
https://web.archive.[...]
null
[38]
웹인용
Flask Extensions
http://flask.pocoo.o[...]
null
본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.
문의하기 : help@durumis.com