code

좋은 경량 Python MVC 프레임 워크는 무엇입니까?

codestyles 2020. 10. 29. 08:09
반응형

좋은 경량 Python MVC 프레임 워크는 무엇입니까?


많은 파이썬 프레임 워크가 있다는 것을 알고 있습니다. 저를 올바른 방향으로 안내해 주시겠습니까? 내 주요 관심사는 단순성이며, 많은 불필요한 기능이 필요하지 않습니다. 다음은 내가 원하거나 원하지 않는 몇 가지 다른 것입니다.

  • ORM은 신경 쓰지 말고 MySQL과 함께 작동하기를 원합니다.
  • 구성 가능한 경로가 있습니다.
  • 레이아웃을 지원합니다

web2py 는 265Kbytes의 소스 코드와 1.2MB의 모든 것을 포함합니다 (4.6MB의 Django와 비교). 그러나 web2py는 필요한 모든 것을 수행합니다 (세션, 쿠키, 요청, 응답, 캐시, 국제화, 오류 / 티켓, GAE, SQLite, MSSQL, MySQL, Postgres, Oracle, FireBird 등을위한 데이터베이스 추상화). 설치가 필요하지 않습니다. -압축을 풀고 클릭하면 브라우저에서 개발할 수 있습니다.

Web2py에는 경로와 역방향 경로가 모두 있습니다.

Web2py에는 계층 적 템플릿 시스템이 있습니다. 즉, 뷰가 다른 레이아웃을 확장 할 수있는 레이아웃을 확장 할 수 있습니다. 뷰는 다른 뷰도 포함 할 수 있습니다.


당신은 명시 적으로 ORM을 원하지 않기 때문에, 내가 당신이라면 "풀 스택"프레임 워크를 멀리 할 것입니다. Python의 WSGI 표준은 필요한 기능 만 제공하고 작업 스타일을 선택할 수있는 사용하기 쉬운 수많은 옵션을 제공합니다.

예 : URL 디스패치의 경우 Rails의 URL 디스패치 스타일을 포팅 하는 Routes 를 사용할 수 있습니다 . 또는 해당 스타일이 더 적합하다면 SelectorWebOb를 결합 할 수 있습니다.

"레이아웃"의 경우 코드를 실행할 수없는 템플릿을 원하는 경우 강력한 Jinja2 를 사용할 수 있습니다. 또는 템플릿에 약간의 코드를 혼합하고 싶다면 Mako 를 선택하세요. Deliverance사용 하여 여러 앱과 여러 언어로 구성된 페이지의 레이아웃을 제어 할 수도 있습니다!

풀 스택 웹 프레임 워크는 다양한 선택을 할 수있어 건물 앱에만주의를 기울일 수 있다는 점에서 좋습니다. 하지만 위에 나열한 선택 항목은 자신 만의 제품을 만들 수있는 좋은 컬렉션입니다. 해당 경로를 따라 가면 필요한 경우 캐싱 및 세션을 위해 Beaker 를 연결 하거나 디버깅을 지원하는 WebError쉽게 연결할 수 있습니다.

개인적으로 저는 ORM (특히 SQLAlchemy ) 의 열렬한 팬 이지만 ORM을 무료로 경량화하려는 경우 Python에서 사용할 수있는 훌륭한 WSGI 구성 요소를 결합하는 것을 이길 수 없습니다.


부여 web.py 시도. 매우 간단하며 원하는 미니멀리즘을 제공 할 수 있습니다.


철탑.

장고보다 훨씬 낫고 엉뚱한 ORM과 함께 제공되지 않습니다.


사람들은 이미 웹 애플리케이션 프레임 워크에 대해 많은 답변을했지만 MVC (또는 다른 패러다임)는 웹에만 국한되지 않습니다. 그것은 단지 명확성을위한 것입니다.

일반 MVC에 관한 경우 Pylons는 더 엄격한 방식으로 패러다임을 준수합니다. Django는 MVC를 해석하고 model-template-view 라고 부르지 만 역할 분리 개념은 동일합니다. 실제 선택은 개인적인 취향의 문제입니다. 비록이 두 가지 중 어느 것도 가볍다 고 생각하지 않지만 (Pylons는 더 가벼워 보일 수 있지만 실제로는 그렇지 않습니다. 그리고 최근에 Django는 추가 가중치를 얻었습니다. 개인 블로그와 같은 작은 응용 프로그램에도 적합하지 않을 것입니다. 20MB 상주 메모리).

물론, 자신의 프레임 워크를 작성하는 것을 막을 수는 없습니다. WebOb . 원하는 만큼 가볍게 만들 수 있습니다 (그리고 시도하는 많은 것을 배울 수 있습니다).


자신 만의 프레임 워크 를 만들 필요없이 단순한 것을 원한다면 (django) 여전히 모든 것을 포함하지는 않지만 CherryPy 를 사용해 볼 수 있습니다 . 거의 모든 디스패처 (페이지 핸들러 / URL 라우팅 시스템)를 사용할 수 있습니다 . 또한 자신 만의 템플릿 엔진을 선택해야합니다 . Genshi 는 제가 가장 좋아하는 것입니다.


체크 아웃 https://github.com/salimane/bottle-mvc 또는 https://github.com/salimane/flask-mvc . 컨트롤러, 모델을 별도의 폴더로 시작할 수있는 상용구입니다. 그들은 병 및 플라스크 마이크로 프레임 워크를 기반으로하며 쓸모없는 기능이 없으며 원하는 모듈을 플러그인 할 수있는 유연성을 제공합니다.


데스크톱 응용 프로그램의 경우 Dabo 가 좋은 선택입니다. MySql, Postgresql, Firebird 및 Sqlite를 지원하는 wxPython 기반의 크로스 플랫폼 프레임 워크입니다.


web2py를 원합니다. 확인해 봐:

  • ORM은 신경 쓰지 말고 MySQL과 함께 작동하기를 원합니다.

Web2py에는 ORM이 없지만 SQL을 훨씬 쉽게 수행 할 수 있도록 SQL에 대한 구문 래퍼가 있습니다.

  • 구성 가능한 경로가 있습니다.
  • 레이아웃을 지원합니다

... web2py에는이 두 가지가 있습니다.

그리고 web2py는 거의 모든면에서 django / rails / whatever보다 가볍습니다. 배우기 매우 쉽습니다. MVC 프레임 워크를 배우는 데있어 가장 어려운 점은 스크립트, ORM 및 (django와 함께) 템플릿 언어입니다. 그러나 web2py는 스크립트를 제거하고 ORM을 단순화했으며 템플릿 언어는 매우 영리한 방식으로 Python 일뿐입니다.


예, Django가 확실히 갈 길이라고 말하고 싶습니다. 모듈 식 디자인으로 구성 요소 (ORM, 템플릿 엔진, URL 디스패치 등)를 혼합하고 일치시킬 수 있습니다. 프레임 워크가 제공하는 구성 요소에 얽매이지 않고 대신 타사의 동등한 구성 요소로 대체 ​​할 수 있습니다.


장고!

Google App Engine에서 사용합니다.

나는 내 애완 동물 프로젝트에도 그것을 사용합니다.


web2py! 장고는 컨트롤러를 뷰라고 부른다.


단순성을 원한다면 web2py 또는 pylons를 사용하십시오. 장고는 좋지만 학습 곡선은 가파르다


장고. 당신은하지 않습니다 추가 기능을 사용하고, 필요에 따라 제 3 자 라이브러리-N-경기를 혼합 할 수 있도록 잘 설계되었습니다.


저는 파이썬에 정말 익숙하지 않지만 몇 가지, 특히 Django와 web2py를 시도했습니다. 나는 web2py의 단순함을 좋아했고, 며칠 만에 중간 정도의 복잡한 사이트를 만들 수있었습니다. 그것은 DAL, 코드 생성, HTML hlpers와 같은 불필요한 기능 세트를 가지고 있으며 저에게 가장 중요한 기능은 사이트의 문서가 매우 완벽하다는 것입니다.


나는 Pylons를 살펴볼 것입니다 ; 가볍고 빠릅니다.


나는 또한 Django 보트에 있습니다. 그 이유는 다음과 같습니다.


장고 가 제 추천입니다.

여기에서 이에 대한 소개를 찾을 수 있습니다 (Jacob Kaplan-Moss의 Google Tech Talk).

또한 DePaul University의 Snakes and Rubies 에서 Adrian Holovaty의 강연을 살펴볼 수도 있습니다 .


모든 Python 프레임 워크가 명시 적으로 MVC를 지원하는 것은 아니지만, 데이터 로직 (모델)을 사용자 상호 작용 로직 (컨트롤러) 및 템플릿 (뷰)에서 분리하여 MVC 패턴을 사용하는 웹 사이트를 만드는 것은 쉬운 일이 아닙니다.

http://docs.python.org/howto/webservers.html#model-view-controller

참고 URL : https://stackoverflow.com/questions/68986/whats-a-good-lightweight-python-mvc-framework

반응형