Flask CMS > 파이썬

파이썬

그누 어디까지 써봤니? 나는 파이썬까지 써봤어!

Flask CMS 정보

Flask CMS

본문

백엔드는 Flask로

 

https://github.com/TaleLin/lin-cms-flask

 

프런트엔드는 Vue로.

 

https://github.com/TaleLin/lin-cms-vue

 

데모는 http://doc.cms.7yue.pro/

 

소개

#린 CMS 무엇입니까?

Lin CMS의 구성 아이디어는 고유 한 특성을 가지고 있습니다. 아래에서 Lin의 주요 기능에 대해 설명합니다.

#Lin CMS는 프런트 엔드와 백 엔드로 분리 된 CMS 솔루션입니다.

이는 Lin이 백엔드 지원을 제공 할뿐만 아니라 해당 프론트 엔드 시스템도 제공한다는 것을 의미합니다. 물론 이중 엔드 분리의 이점은 이에 국한되지 않으며 현재 Python 및 Node.js 구현이 있습니다. 당신의 마음에 드는 린,하지만 때문에 기술 스택의 사용할 수없는 경우, 문제가 우리 다가오는하지 않습니다 Java린의 버전.

Lin이 왜 프론트 엔드와 백엔드가 분리 된 단일 페이지 아키텍처를 선택 했습니까?

우선, 전통적인 웹 사이트 개발은 서버 측 렌더링에 더 기반을두고 있습니다. 서버에서 페이지 렌더링을 완료하려면 템플릿 언어를 사용해야합니다 (JinJa2, Jade 등). 서버 측 렌더링의 이점은 SEO를 더 잘 지원할 수 있다는 것이지만 내부 CMS 관리 시스템으로서 SEO는 중요하지 않습니다.

그러나 무시할 수없는 사실은 서버가 렌더링 한 페이지가 프런트 엔드 개발자가 수행하는지 아니면 서버 개발자가 수행하는지 여부입니다. 실제로는 적합하지 않습니다. 많은 프런트 엔드 개발자가 이러한 서버 측 템플릿 언어를 알고있는 것은 아니며 서버 개발자 자신도 페이지를 잘 개발하지 못합니다. 프론트 엔드는 가장 친숙한 Vue를 사용하여 JS와 CSS를 작성하며 서버는 자체 API에만 집중하면됩니다.

둘째, 단일 페이지 응용 프로그램 자체의 경험이 전통적인 웹 사이트보다 낫습니다.

#프레임 워크 자체에는 CMS의 공통 기능이 내장되어 있습니다.

Lin은 이미 CMS에 내장 된 가장 일반적인 요구 사항 인 사용자 관리, 권한 관리, 로깅 시스템 등을 보유하고 있습니다. 개발자는 자신의 CMS 비즈니스 개발에만 집중하면됩니다.

#Lin CMS 자체는 일련의 개발 사양입니다.

Lin CMS는 기본 제공 공통 기능 외에도 일련의 개발 사양 및 도구를 제공합니다. 다시 말해, 개발자는 매개 변수를 확인하는 방법에 대해 걱정할 필요가 없습니까? 데이터베이스를 운영하는 방법? 전역 예외 처리를 수행하는 방법? API의 구조는 무엇입니까? 프론트 엔드 구조는 어떻게 구성되어야합니까? 이 문제는 Lin CMS에 의해 해결되었습니다. 물론 Lin이 제공하는 아키텍처가 마음에 들지 않으면 고유 한 CMS 아키텍처를 구현할 수도 있습니다. 그러나 정상적인 상황에서는 아키텍처를 변경할 필요가 없으며 Lin은 대부분의 중소형 CMS 요구를 충족시킬 수 있습니다.

예를 들어, 각 API는 클라이언트가 전달한 매개 변수의 유효성을 검증해야합니다. 그러나 많은 검증 방법이 있으며 개발자마다 구성 체계가 다릅니다. 그러나 Lin은 일련의 검증 메커니즘을 제공하므로 개발자는 더 이상 매개 변수를 검증하는 방법에 대해 걱정할 필요가 없으며 자신의 비즈니스를 작성하기 위해 Lin의 검증 체계를 모방하기 만하면됩니다.

Lin CMS 는 여전히 이러한 원칙을 기반으로합니다. Lin CMS는 개발자가 자신의 비즈니스 개발에주의를 기울여야하기 때문에 개발자가 자신의 비즈니스를 빠르게 개발할 수 있도록 많은 메커니즘을 이미 갖추고 있습니다.

#플러그인 기반 확장

좋은 프레임 워크는 확장을 고려해야합니다. Lin의 확장 된 지원은 플러그인 아이디어를 통해 설계되었습니다. 새 기능을 추가해야 할 경우 Lin의 디렉토리에 직접 코드를 작성하거나 기능을 플러그인으로 캡슐화 할 수 있습니다. 예를 들어, 기사 관리 기능을 개발하는 경우이를 플러그인으로 공개하도록 선택할 수 있으므로 다른 개발자가 플러그인을 설치하여이 기능을 사용할 수 있습니다. 플러그인 형태로 기능을 캡슐화하면 코드의 재사용 성을 극대화 할 수있을 것입니다. 다른 개발자가 사용할 수있는 고유 한 플러그인을 게시 할 수도 있습니다. 이 메커니즘은 꽤 좋습니다.

#프론트 엔드 컴포넌트 라이브러리 지원

또한 Lin은 Vue Element와 유사한 프론트 엔드 구성 요소 라이브러리 세트를 제공하여 프론트 엔드 개발자의 신속한 개발을 용이하게합니다. Lin에서 제공하는 구성 요소 라이브러리는 Vue Element 또는 iView와 같은 성숙한 구성 요소 라이브러리와 비교하여 Lin CMS의 전체 디자인 스타일과 대화식 경험에 대해 많은 최적화를 수행하며 Lin의 구성 요소 라이브러리를 사용하면보다 나은 경험을보다 쉽게 ​​개발할 수 있습니다. CMS 시스템. 물론 Lin 자체는 개발자가 컴포넌트 라이브러리를 선택하는 것을 제한하지 않으며, 앞서 언급 한 Vue Element 및 iView와 같은 선호도 / 습관 / 친숙도에 따라 Vue 기반 컴포넌트 라이브러리를 선택할 수 있습니다. 당신은 혼합하고 일치시킬 수 있습니다. 물론 이러한 구성 요소 라이브러리는 Vue를 기반으로합니다.

#잘 문서화

개발자가 Lin을 사용하는 데 도움이되는 자세한 문서를 제공합니다.

#필요에 따라

Lin은 별도의 프런트 엔드 아키텍처를 사용하므로 최소한 Python (Node.js 또는 Java) 및 Vue에 익숙해야합니다.

Lin의 서버 측 프레임 워크는 Python Flask를 기반으로하므로 Flask의 개발 모델에 익숙한 경우 Lin을 더 잘 사용할 수 있습니다. 그러나 Flask에 익숙하지 않다면 Lin 자체가 이미 완전한 개발 메커니즘 세트를 제공하므로 Lin 프레임 워크 아래에서 Python으로 비즈니스 코드를 작성하기 만하면됩니다. 호리병박 국자를 그리는 것은 이와 같아야합니다.

파이썬에 익숙하지 않거나 파이썬이 아니라고 말하더라도 중요하지 않습니다. 우리 Node.js를의 버전이 출시되었습니다.

그러나 프런트 엔드는 다르지만 여전히 개발자는 Vue에 익숙해야합니다. 그러나 나는 Vue가 전국에서 인기가 있다고 생각하지만 대부분의 개발자에게는 아무런 문제가 없습니다. 이것이 Vue를 프론트 엔드 프레임 워크로 선택한 이유입니다. React Or Angular가 마음에 드시면 저희와 함께 Lin의 해당 버전을 개발하십시오.

#왜 Node.js를

우리는 Node.js를 다양한 고려 사항과 조치 하에서 팀이 도입 한 두 번째 기술 스택으로 선택했습니다.

  • Node.js는 프론트 엔드, 백엔드 및 심지어 테스트까지 폭 넓은 대상을 가지고 있으며 UI에는 특정 js 기반이 있습니다.
  • Node.js는 최근 몇 년 동안 호황을 누리고 있지만 실제로 사용하기 쉬운 CMS 프레임 워크는 거의 없으며 Lin은 이러한 차이를 메우기를 희망합니다.
  • ...

koa기본 프레임 워크에서는 koa-router, sequelize 및 jsonwebtoken과 같은 일련의 프레임 워크를 통합하는 기본 프레임 워크를 선택 했으며 플라스크 버전의 구현 덕분에 CMS의 koa 버전이 더 사용하기 쉬워졌습니다. lin-cms-koa는 lin-cms-flask에서 대부분 빌려주는데, 우리는이 두 가지의 구조와 모드가 일관되게되도록 노력합니다. 물론이 두 언어는 서로 다른 언어에 속하고 완전히 다른 생태학을 가지고 있기 때문에 차이점이 다소 다르므로 이후 문서에서 자세히 소개 할 것입니다.

lin-cms-koa 구현의 주요 기술 스택 및 기능 :

  • koa-router기본 라우팅 프레임 워크로 통합 되며 권한 관리를위한 LinRouter 를 제공합니다 .
  • validator.js파라미터 검증 라이브러리로 통합
  • sequelize데이터베이스 운영을 용이하게하는 통합 프레임 워크.
  • 통합 jsonwebtoken프레임 워크를하고, 제공 access_token및 refresh_token토큰 메커니즘.
  • 구성, 로깅, 권한 등과 같은 많은 기본 기능을 제공합니다. 물론 koa의 환경 덕분에 다른 타사 라이브러리도 사용할 수 있습니다.
추천
0

댓글 0개

전체 121 |RSS
파이썬 내용 검색

회원로그인

진행중 포인트경매

  1. 참여0 회 시작24.03.28 11:15 종료24.04.04 11:15
(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT