Python Gearbox Command Line Toolkit

김태호·2022년 4월 30일
0

Kallithea

목록 보기
2/5

Overview


Gearbox Command Line Toolkit 은 python 기반 웹 프레임워크 이다.

TL;DR

Python Paster 란?


Python 의 웹 개발을 위한 Utility 세트이며 WSGI 미들웨어 구현을 돕는 Python 모듈이 포함되어 있다.

  • WSGI란?
    Web Server Gateway Interface의 약자이고, 웹 서버와 웹 애플리케이션의 인터페이스를 위한 파이썬 프레임워크 이다.

CLIFF란?
앞서 간략히 소개하였듯, Command Line Interface Formulation Framework 의 약자로 Command Line 프로그램을 빌드하기 위한 프레임워크 이다.

플러그인을 사용하면 Sub-Commnad, 출력 포멧터 및 기타 확장을 정의한다.

Cliff 프레임워크는 하위 버전 및 Git 과 같은 여러 수준의 명령을 만드는것을 목적으로 사용되도록 제작되었는데, 여기서 메인 프로그램은 일부 기본 Arguments 분석을 처리하고 수행하기 위해 하위 commnad를 호출한다.

Gearbox란?


Gearbox는 TurboGears 2의 Paster Commnad를 대체하는 Tool Kit이다.

기존 TurboGears 프로젝트와 역 호환성을 유지하면서 TurboGears 2 웹 프레임워크에 Pyhton3.x 버전을 지원하기 위한 과정에서 만들어졌다.

Gearbox 는 CLIFF(Command Line Interface Formulation Framework)의 간소화된 버전을 기반으로 하며, 고급 사용 및 커스텀 지정 명령 인터프리터의 사용을 고려하는 경우엔 CLIFF를 고려하기를 기대한다.

Gearbox Commnad Lines


Windows 10 의 경우 Powershell 및 터미널에서 관리자 권한으로 실행해야 모든 명령어를 문제없이 사용할 수 있습니다.
Unix 기반의 운영체제에서 또한 관리자 권한으로 실행하기를 권장합니다.

TurboGears2 란?

기존의 Django, Rails, TurboGears1 등 웹 프레임워크의 경험을 바탕으로 제작된 프레임워크 입니다. 이러한 프레임워크들의 불편한점을 개선하였습니다.

특징


  1. 프레임워크의 크기를 Microframework로 시작하여 full-stack 솔루션으로 확장 가능
  2. 함수를 작성하는 것 만큼 자연스러운 코드
  3. 실제 다중 데이터 파티셔닝 (일면 Sharding) 지원
  4. AJAX 대용량 애플리케이션을 쉽게 구축할 수 있는 새로운 Widget 시스템
  • ToscaWidgets는 파이썬에서 재사용 가능한 웹 UI 구성요소를 구축하기 위한 WSGI 프레임워크입니다.
    이 시스템을 통해 웹 개발자는 복잡한 위젯을 응용프로그램에서 쉽게 사용할 수 있습니다. 즉, 위젯의 내부 복잡성이 숨겨집니다.
    이를 통해 강력한 웹 애플리케이션을 신속하게 개발할 수 있습니다.
    이론적으로는 다른 WSGI 기반 웹 프레임워크(예: pyramid 또는 TurboGear)와 호환된다.
    기존 위젯의 광범위한 라이브러리가 있습니다.
  1. 프로그래머에게 적합한 디자이너 친화적인 템플릿 시스템
  2. TurboGear2 는 Python 2.7 버전과 3.4 이상의 버전에서 동작합니다.

Practice

Installation 과정

$ pip install TurboGears2
$ pip install gearbox
$ pip install cliff
$ pip install tg.devtools

myapp.py 작성

 from wsgiref.simple_server import make_server
 from tg import MinimalApplicationConfigurator
 from tg import expose, TGController

 # RootController of our web app, in charge of serving content for /
 class RootController(TGController):
     @expose(content_type="text/plain")
     def index(self):
         return 'Hello World'

 # Configure a new minimal application with our root controller.
 config = MinimalApplicationConfigurator()
 config.update_blueprint({
     'root_controller': RootController()
 })

 # Serve the newly configured web application.
 print("Serving on port 8080...")
 httpd = make_server('', 8080, config.make_wsgi_app())
 httpd.serve_forever()

실행

$ python myapp.py

TurboGears2 프로젝트를 Fullstack Solution 으로 확장시키기

$ gearbox quickstart myproj
$ cd myproj
$ pip install -e .
$ gearbox serve

위의 명령어를 모두 성공적으로 실행하면 로컬에서 서버의 동작을 확인할 수 있다.
127.0.0.1:8000

profile
신입 모바일 개발자 입니다!

0개의 댓글