>  기사  >  백엔드 개발  >  Python에서는 어떤 프레임워크를 사용할 수 있나요?

Python에서는 어떤 프레임워크를 사용할 수 있나요?

(*-*)浩
(*-*)浩원래의
2019-06-15 15:34:0217236검색

며칠 전 한 친구가 나에게 다음과 같은 메시지를 남겼습니다. Python 프레임워크에 대한 유용한 요약은 언제 나올까요(이 문서의 목록은 일부일 뿐이며 모든 Python 프레임워크를 포함하지는 않습니다). 기사가 탄생했습니다. (갑자기 기분이 너무 좋아요)

Python에서는 어떤 프레임워크를 사용할 수 있나요?

추천 : Django (추천 학습 : #🎜🎜 #PythonVideoTutorial)

Django는 가장 유명한 Python 프레임워크여야 하며, GAE와 심지어 Erlang도 이에 영향을 받는 프레임워크를 가지고 있습니다. Django는 크고 포괄적인 방향을 취하고 있습니다. 완전 자동화된 관리 백엔드로 가장 유명합니다. ORM을 사용하고 간단한 개체 정의만 하면 데이터베이스 구조와 모든 기능을 갖춘 관리 백엔드를 자동으로 생성할 수 있습니다.

장점:

완벽한 문서 지원을 갖춘 오픈 소스 프레임워크

다양한 솔루션, 더 많은 내부 기능 지원

#🎜🎜 #elegantURL , 완전한 라우팅 시스템

셀프 서비스 백그라운드 관리

단점:

시스템이 긴밀하게 결합되어 있어 내가 가장 좋아하는 타사를 사용하고 싶습니다. 라이브러리로 대체하기가 매우 어렵고, 패치를 몇 개 적용하고 사용해도 매우 어색함을 느낄 것입니다.

Django에 내장된 ORM은 SQLAlchemy보다 강력하지 않습니다.

Template 함수는 상대적으로 약하고 Python 코드를 삽입할 수 없습니다. 더 복잡한 논리를 작성하려면 Python을 사용하여 태그 또는 필터를 구현해야 합니다.

추천 2: Flask

Flask는 Python으로 작성된 경량 웹 애플리케이션 프레임워크입니다. Werkzeug WSGI 도구 상자 및 Jinja2 템플릿 엔진을 기반으로 합니다. Flask는 간단한 코어를 사용하고 확장 기능을 사용하여 추가 기능을 추가하기 때문에 "마이크로프레임워크"라고도 합니다. Flask에는 기본적으로 사용되는 데이터베이스나 양식 유효성 검사 도구가 없습니다.

장점:

Flask는 Flask를 사용하여 애플리케이션을 구축하기 전에 개발자가 구성 요소를 선택할 때 더 많은 유연성을 제공합니다. 표준 ORM(객체 관계형 매핑)을 사용하는 데 적합하지 않거나 다른 워크플로 및 템플릿 시스템과 상호 작용해야 합니다.

단점:

Flask는 단지 커널일 뿐이며 기본적으로 두 개의 외부 라이브러리인 Jinja2 템플릿 엔진과 Werkzeug WSGI 도구 세트에 의존합니다. .임베디드 사용.

추천 3: Scrapy

Scrapy는 크롤링 웹 사이트 및 크롤링을 위해 Python으로 개발된 빠르고 높은 수준의 화면 스크래핑 및 웹 스크래핑 프레임워크입니다. 페이지에서 구조화된 데이터를 추출합니다. Scrapy는 널리 사용되며 데이터 마이닝, 모니터링 및 자동화 테스트에 사용될 수 있습니다.

장점:

Scrapy는 요청을 쉽게 구성할 수 있을 뿐만 아니라 응답을 쉽게 구문 분석할 수 있는 강력한 선택기를 갖추고 있습니다. 가장 인기 있는 것은 성능, 즉 크롤링 및 구문 분석 속도이며, 다운로더는 다중 스레드이며 요청은 비동기적으로 예약 및 처리됩니다. 이 두 가지 점으로 인해 크롤링 속도가 매우 빨라집니다.

또한 로깅, 예외, 쉘 및 기타 모듈이 내장되어 있어 크롤링 작업에 많은 편의성을 제공합니다.

단점:

scrapy는 다운로더, 파서, 로그 및 예외 처리를 기반으로 하는 캡슐화된 프레임워크입니다. 단일 웹사이트를 크롤링하고 개발하는 것에는 장점이 있지만, 여러 웹사이트에서 100개의 웹사이트를 크롤링하는 경우 동시 및 분산 처리 측면에서 유연성이 부족하여 조정 및 확장이 불편합니다.

추천 4개: Tornado

Tornado는 웹 서버 소프트웨어의 오픈 소스 버전입니다. Tornado와 오늘날의 주류 웹 서버 프레임워크(대부분의 Python 프레임워크 포함) 사이에는 분명한 차이가 있습니다. 이는 비차단 서버이며 매우 빠릅니다.

장점:

Tornado는 비동기 네트워킹의 세부 사항을 엄격하게 제어해야 하는 애플리케이션을 위한 인프라를 제공하는 데 탁월합니다. 예를 들어 Tornado는 내장된 비동기 HTTP 서버뿐만 아니라 비동기 HTTP 클라이언트도 제공합니다. 따라서 Tornado는 다른 사이트를 병렬로 쿼리하고 반환된 데이터에 대해 작동하는 웹 스크레이퍼 또는 봇과 같은 애플리케이션을 구축하는 데 이상적입니다.

단점:

템플릿 및 데이터베이스 부분에서 선택할 수 있는 타사 모듈이 많아 기능 모듈로 캡슐화하는 데 도움이 되지 않습니다.

추천 5개: Web2py

web2py는 Python 언어용으로 제공되는 모든 기능을 갖춘 웹 애플리케이션 프레임워크로, 웹 애플리케이션을 민첩하고 신속하게 Google App Engine과 호환되는 빠르고 안전하며 휴대 가능한 데이터베이스 기반 애플리케이션입니다.

장점:

Web2py의 가장 큰 매력은 내장된 개발 환경입니다. Web2py 인스턴스를 설정하면 기본적으로 온라인 Python 애플리케이션 편집기인 웹 인터페이스가 제공되며, 여기에서 애플리케이션의 구성 요소를 구성할 수 있습니다. 이는 일반적으로 Python 모듈 또는 HTML 템플릿을 통해 각각 설명되는 모델, 보기 및 컨트롤러를 만드는 것을 의미합니다.

단점:

Web2py의 중요한 제한 중 하나는 Python 2.x와만 호환된다는 것입니다. 첫째, 이는 Web2py가 Python 3의 비동기 구문을 사용할 수 없음을 의미합니다. Python 3에 고유한 외부 라이브러리에 의존한다면 운이 좋지 않습니다. 그러나 Web2py Python3을 호환 가능하게 만드는 작업이 진행 중이며 이 글을 쓰는 시점에서 거의 완료되고 있습니다.

추천 6개: Weppy

Weppy는 Flask의 미니멀한 스타일과 Django의 완성도 사이의 중간쯤 되는 느낌입니다. Weppy 애플리케이션 개발에는 Flash의 직접성이 있지만, Weppy에는 데이터 계층 및 인증과 같이 Django에서 볼 수 있는 많은 기능이 있습니다. 따라서 Weppy는 매우 단순한 것부터 적당히 복잡한 것까지 다양한 애플리케이션에 적합합니다.

장점:

Weppy의 문서는 프레임워크 자체와 동일한 스타일을 가지고 있습니다. 깨끗하고 읽기 쉬우며 인간이 소비할 수 있도록 만들어졌습니다. 일반적인 "hello world" 애플리케이션 예제 외에도 초보자 프로젝트로 Weibo 시스템을 만들 수 있는 유용한 연습 튜토리얼도 포함되어 있습니다.

단점:

Weppy에는 확장 메커니즘이 있지만 공식적으로 승인된 추가 기능 목록은 적고 Flask의 확장 디렉터리보다 훨씬 작습니다.

추천 7: 병

병은 다른 "마이크로 프레임워크"보다 더 작고 간결하기 때문에 미니 플라스크라고 간주할 수 있습니다. . 최소한의 설치 공간으로 인해 Bottle은 다른 프로젝트에 포함하거나 REST API와 같은 소규모 프로젝트를 빠르게 전달하는 데 이상적입니다.

장점:

Bottle은 다른 프레임워크만큼 많은 문서를 요구하지 않지만 문서가 결코 인색하지는 않습니다. 모든 주요 내용은 비록 길긴 하지만 하나의 웹 페이지에 들어있습니다. 이 외에도 각 API에 대한 전체 문서, 다양한 인프라에 배포하는 방법에 대한 예, 내장된 템플릿 언어에 대한 설명 및 일반적인 레시피 모음을 찾을 수 있습니다.

단점:

병미니멀리즘의 한 가지 결과는 일부 기능이 단순히 존재하지 않는다는 것입니다. CSRF 보호 및 기타 기능을 포함한 양식 유효성 검사는 지원되지 않습니다. 높은 수준의 사용자 상호 작용을 지원하는 웹 애플리케이션을 구축하려면 이를 직접 추가해야 합니다.

더 많은 Python 관련 기술 기사를 보려면 Python Tutorial 열을 방문하여 알아보세요!

위 내용은 Python에서는 어떤 프레임워크를 사용할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.