터보 기어

TurboGears
터보 기어
TgGear.png
개발자Kevin Dangoor(오리지널 크리에이터), Mark Ramm(TG2 리드) 등
초기 릴리즈2005년 9월, 16년 전(2005-09)
안정된 릴리스
2.4.3[1] / 2020년 3월 1일, 2년 전(2020년 3월 1일)
저장소TurboGears 저장소
기입처파이썬
운영 체제크로스 플랫폼
유형웹 응용 프로그램 프레임워크
면허증.MIT 라이선스, LGPL
웹 사이트www.turbogears.org

TurboGears는 WebOb, SQL Chemy, GenshiRepoze같은 여러 WSGI 구성 요소로 구성Python애플리케이션 프레임워크입니다.

TurboGears는 Struts 또는 Ruby on Rails와 마찬가지모델 컨트롤러(MVC) 아키텍처를 중심으로 설계되었으며 Python에서 빠른 웹 애플리케이션 개발을 보다 쉽고 쉽게 유지 관리할 수 있도록 설계되었습니다.버전 2.3 이후 프레임워크는 스택 전체가 불필요하거나 필요하지 않은 환경에서 사용하기 위한 마이크로프레임워크로서 기능할 수 있는 "최소 모드"도 제공하고 있습니다.

TurboGears 컴포넌트

TurboGears는 다양한 라이브러리와 미들웨어를 기반으로 구축되어 있습니다.디폴트 툴은 1.x, 2.x 및 2.3+ 시리즈로 변경되어 있습니다만, 이러한 컴포넌트의 대부분은 많은 대체 구성이 지원되고 있기 때문에 어느 쪽에서도 사용할 수 있습니다.다음은 개발자가 상호작용할 수 있는 주요 컴포넌트입니다.

TurboGears 2.x 컴포넌트

  • SQLLechemy(모델) - 사용자 데이터베이스의 테이블 구조와 사용자 컨트롤러가 상호 작용할 수 있는 Python 개체에 연결하는 방법을 정의합니다.
  • Ming (모델) - SQL Chemy가 MongoDB 컬렉션을 사용자의 컨트롤러가 상호작용할 수 있는 Python 오브젝트에 링크하는 방법을 정의하는 것과 마찬가지로 MongoDB의 데이터 액세스 레이어를 제공합니다.
  • Genshi(보기) - 사용자가 생성할 HTML 또는 XHTML 템플릿을 정의합니다.여기서 사용자는 클라이언트가 상호 작용하는 프런트엔드를 정의합니다.
  • 재포즈 - 재포즈.보안(식별 및 인증) 처리에 사용되는 사용자.사용자는 컨트롤러에 연결된 술어를 기반으로 권한 부여 규칙을 정의할 수 있습니다. 프레임워크는 이미 일부 기본 제공 술어를 제공하지만 커스텀 술어는 작성할 수 있습니다.
  • ToscaWidgets - 양식 및 복잡한 GUI를 작성하기 위한 기본 위젯 라이브러리입니다.기본적으로 Tosca는 간단한 HTML 폼을 생성하지만 고급 JavaScript 위젯 및 툴킷에 연결하기 위한 미들웨어로도 사용할 수 있습니다.TurboGears 1.x와 달리 선호되는 통합 자바스크립트 라이브러리는 [2]더 이상 없습니다.
  • 기어박스 - TurboGears가 프로젝트 관리, 신규 생성 및 TurboGears 응용 프로그램 제공을 위해 사용하는 툴킷이지만 Apache, Nginx 또는 기타 WSGI 호환 웹 서버에도 연결할 수 있습니다.

2.3 이전 버전에서는 다음 기능도 사용합니다.

  • 파일론(컨트롤러) - 이 미들웨어는 사용자의 모든 백엔드 로직을 처리하고 사용자의 웹 서버에 연결하여 데이터를 웹에 제공합니다.
  • Paster는 Gylbox를 대신하여 사용된 명령어 툴킷 및 웹 서버입니다.
  • Repoze.what - 각각 인가 처리에 사용됩니다.웹에 노출되는 사용자 컨트롤러의 요소를 정의할 때 위치를 다시 지정합니다.어떤 술어가 누가, 어떤 조건에서 접근할 수 있는지를 정의합니다.

TurboGears 1.x 컴포넌트

  • SQLObject(모델) - 많은 데이터베이스 서버의 기존 데이터와 데이터베이스를 만들거나 인터페이스를 만들 수 있는 데이터 백엔드입니다.
    • SQL Chemy는 TurboGears > = 1.1에서 기본값이 될 예정입니다.
  • Kid (View) - XHTML 프런트엔드 템플릿엔진으로, 모든 템플릿이 유효한 XHTML 또는 XML 파일이며, 이러한 템플릿을 간단한 XHTML 파일로 열어 설계를 확인할 수 있도록 합니다.동시에, Python의 스니펫을 XMLish 방식으로 삽입할 수 있는 기능이 제공됩니다.
    • Genshi는 Kid의 후속 모델로 TurboGears > = 1.1에서 기본 템플링 엔진으로 대체될 예정입니다.Kid와 구문 호환성이 거의 100%입니다.
  • CherryPy(컨트롤러) - (TurboGears 케이스의 경우) 템플릿에 데이터를 반환하는 이벤트 핸들러를 작성하여 웹 응용 프로그램을 프로그래밍할 수 있는 미들웨어입니다.JSON 데이터 스트림과 동일한 데이터를 Ajax 방식으로 수신할 수도 있습니다.
  • MochiKit은 TurboGears 1.x에서는 선호되지만 옵션인 JavaScript 라이브러리입니다.이것은 자바스크립트의 프로그래밍을 보다 피토닉하게 만들도록 설계되어 있습니다.비동기 방식으로 JSON 데이터 스트림을 가져올 수 있는 인터페이스를 제공하기 때문에 Ajax 기능과 위젯을 구현하는 데 주로 사용됩니다.

템플릿 플러그인

Genshi 이외의 템플릿 언어는 사용자 앱 설정 파일을 통해 사용할 수 있습니다.현재 2.1에서 지원되는 플러그인은 Myghty, Jinja2, Mako, Cheetah, Kajiki입니다.겐시는 사실상 동일하기 때문에, 현재, 키드 서포트는 계획되어 있지 않습니다.이 목록은 향후 버전에서도 계속 변경될 수 있습니다.

프로젝트 이력

TurboGears는 Kevin Dangoor에 의해 아직 출시되지 않은 Zesty News 제품의 [3]이면에 있는 프레임워크로 2005년에 처음 만들어졌습니다.2005년 9월 말에 오픈 소스 프레임워크로 출시했을 때 첫 3개월 [citation needed]동안 스크린캐스트 다운로드 수가 30,000건을 넘었습니다.

2007년 1월 Kevin Dangoor는 프로젝트 리더에서 은퇴하고 Alberto Valverde[4]그의 후임으로 프로젝트를 관리했지만 다른 개인적인 약속으로 인해 사임했습니다.Alberto는 ToscaWidgets 프로젝트를 통해 여전히 TurboGears 커뮤니티에 참여하고 있습니다.TurboGears 프로젝트는 현재 Mark Ramm(TurboGears 2 개발 책임자)과 Florent Assid(TurboGears 1.x 릴리스 관리자)가 이끄는 약 6명의 핵심 개발자가 공동으로 관리하고 있습니다.

2007년 6월 커뮤니티는 Pylons에서 사용되는 컴포넌트와 프로토콜 위에 TurboGears API를 배치하기 위한 실험을 시작했고 마침내 두 프레임워크가 [5]병합될 것이라는 추측이 있었다.그러나 공식 TurboGears 2 문서에는 두 프로젝트의 "다르지만 호환되는 우선 순위"[6] 때문에 이러한 일이 발생할 가능성은 낮다고 나와 있습니다.Pylons는 저레벨의 확장성이 뛰어난 설계에 초점을 맞춘 반면, TurboGears는 완전하고 사용하기 쉬운 패키지를 제공하는 데 초점을 맞췄기 때문에 Debian과 Ubuntu가 현재와 같은 방식으로 협력하고 있습니다.새로운 2.x 브랜치는 2009년 5월에 처음으로 안정 발매되었습니다.

2008년 가을 현재, TurboGears는 TurboGears 메일링 리스트에 3,000명 이상의 사용자가 등록되어 있으며, 2006년 11월에 출판된 프렌티스 홀의 책과 다수의 오픈 소스 및 독점 TurboGears 애플리케이션을 실제 세계에 배포하고 있습니다.개발은 완만하지만 꾸준한 속도로 진행되고 있으며, 2008년과 2009년에 Google Summer of Code 멘토링 조직으로서 프로젝트에 성공적으로 참여함으로써 새롭게 힘을 얻었습니다.TurboGears 1.1은 레거시 사이트의 2.x로의 이행을 지원하기 위해 2009년 10월에 출시되었습니다.TurboGears 2가 가져온 변화에 따라 이 책을 업데이트하기 위한 새로운 개정판이 준비 중입니다.

2010년에는 프로젝트가 약간 흔들렸다.리드 개발자들은 실생활 문제로 불려갔다.그러나 2011년 1월 말, 이 프로젝트는 재편성되어 정상 궤도에 오르기 시작했습니다.몇 달 동안 인프라를 정비하고 코딩 문제를 해결한 후, TurboGears는 새로운 버전(2.0.4 및 2.1.2)을 출시할 수 있었습니다.

2013년에는 이전 버전과의 호환성을 유지하면서 Pylons 코드 베이스에서 벗어나 Python 3를 지원하고 속도를 향상시키며 설치 프로세스를 용이하게 했습니다.이를 통해 2013년 8월에 버전 2.3.0이 출시되었습니다.또한 출시 주기를 단축하여 최대 3개월마다 유지 보수 릴리스가 이루어질 것으로 발표되었습니다.

터보기어의 미래

현재 TurboGears 개발은 주로 새로운 2.x 브랜치에 집중되어 있으며 버전 2.3은 현재 파이썬 3을 지원하는 메인 트랙이다.

1.x 브런치에서 2.x 브런치로의 이행 패스는 디폴트 ORM 및 템플릿 언어를 2.x 시리즈에서 사용하는 언어와 일치하도록 이동한 1.1 및 1.5 릴리스를 통해 제공됩니다.TurboGears 팀은 새로운 사용자에게 2.x는 미래이며 1.x는 기존 사용자의 편의를 위해 유지되고 있을 뿐이라는 점을 분명히 했습니다.

2011년 동안 TurboGears의 주요 개발자는 Pylons 프로젝트와 협력하여 Repoze와 협의해 왔습니다.피라미드라고 불리는 새로운 통합 프로젝트로서의 거인 개발자들.이 이동으로 인해 발생할 수 있는 하위 호환성 문제 및 장기적으로 TurboGears가 신뢰할 수 있는 플랫폼임을 보증하기 위해 현재 팀은 Pylons Project와 가능한 모든 면에서 협력하기로 결정했지만 TurboGears 코어는 피라미드에 [7]기반하지 않기로 했습니다.

Pylons [8]프레임워크에 기반하는 대신 TurboGears가 자체 코어를 가지고 있었기 때문에 기존 애플리케이션과 하위 호환성을 유지하면서 TurboGears 코어의 완전한 개서를 본 2.3 브랜치에서는 향후 개발, Pylon 3 지원 및 속도 향상이 이루어졌습니다.

2.3 시리즈 동안 프레임워크는 마이크로프레임으로 동작할 수 있도록 하는 이른바 "미니멀 모드"를 실험해 왔습니다.이 모드에서는 사실상 마이크로프레임에서 확장이 가능한 Python 프레임워크의 장미에서 Flask와 Django 사이의 TurboGears를 배치합니다.TurboGears2 또는 tg.devtools 패키지가 사용된다는 사실에만 따라 전체 스택 프레임워크로 이동합니다.

「 」를 참조해 주세요.

레퍼런스

  • Ramm, M; Dangoor, K; Sayfan, G(2006년 11월 7일).TurboGears를 탑재한 고속 웹 애플리케이션, 프렌티스 홀. ISBN0-13-243388-5

메모들

  1. ^ "Release 2.4.3". 1 March 2020. Retrieved 2 March 2020.
  2. ^ TurboGears2 Cookbook - 양식 생성 및 검증
  3. ^ Kevin Dangoor. "A brief history of TurboGears". blueskyonmars. Retrieved 6 September 2021.{{cite web}}: CS1 maint :url-status (링크)
  4. ^ "TurboGears has a new leader". Kevin Dangoor. 2007-01-03. Retrieved 2007-04-12.
  5. ^ "Pylons Merge". Archived from the original on 2012-07-05. Retrieved 2007-06-27.
  6. ^ "What's new in TurboGears 2". Retrieved 2008-09-16.
  7. ^ "State of the Gears". Michael Pedersen. 2012-03-01. Retrieved 2013-03-18.
  8. ^ "TurboGears 2.3 unstable release". Alessandro Molina. 2013-01-23. Retrieved 2013-03-18.

외부 링크