Skip to content

Plain

파이썬용 웹 프레임워크

About

  • Python으로 프로덕트를 빠르게 구축할 수 있도록 설계된 웹 프레임워크 (Django를 포크)
  • 싱글 커맨드로 로컬 개발 시작 가능하며, 대시보드와 기능 플래그 등을 통해 프로덕션으로 이동할 수 있음
    • 스타터 킷을 클론 하여 빠르게 시작
  • 핵심 plain 패키지와 선택적으로 설치할 수 있는 공식 확장 패키지들로 구성

plain 패키지의 기능

  • URL 패턴을 Python 뷰 함수와 연결
  • HTTP 요청과 응답을 처리
  • Jinja 템플릿을 사용한 HTML 렌더링
  • 사용자 입력을 처리용 Form
  • 명령줄 인터페이스(CLI) 제공
  • CSS, JS, 이미지 등 정적 자산(Assets) 서빙 가능
  • Middleware를 통한 앱 기능 확장
  • 공식 및 서드파티 패키지를 쉽게 통합 가능
  • 앱 구동 전 사전 점검 기능(Preflight check system) 제공

퍼스트파티 패키지들을 통한 확장 기능들

  • plain.models: Postgres, MySQL, SQLite에 데이터를 저장할 수 있는 ORM 제공
  • plain.cache: 기존 데이터베이스와 함께 작동하는 캐싱 솔루션
  • plain.email: 앱 전반에 걸친 이메일 설정 및 전송 기능 제공
  • plain.sessions: 데이터베이스 기반 세션 읽기 및 쓰기 가능
  • plain.worker: 기존 데이터베이스를 지원하는 백그라운드 작업 솔루션
  • plain.api: 클래스 기반 뷰 아키텍처를 사용하여 JSON API 구축 가능

인증 관련

  • plain.auth: 사용자 추가, 요청 인증 및 뷰 제한을 위한 기반 제공
  • plain.oauth: 현대적인 소셜 로그인 및 API 접근을 지원하는 유연한 OAuth 솔루션
  • plain.passwords: 기존 방식의 비밀번호 기반 로그인 지원
  • plain.loginlink: 비밀번호 없이 로그인할 수 있는 일회성 로그인 링크 제공
  • plain.passkeys: 비밀번호 없는 로그인 기능 제공 예정

관리자

  • plain.admin: 완전히 커스터마이징 가능한 관리자 대시보드 제공
  • plain.flags: 데이터베이스 기반 기능 플래그로 사용자별 콘텐츠 제어 가능
  • plain.support: 타사 서비스 없이 고객 지원 제공
  • plain.redirection: 404 모니터링 및 데이터베이스에서 리디렉션 관리
  • plain.pageviews: 사용자가 보는 내용을 확인하고 더 나은 지원 제공

개발

  • plain.dev: 단일 명령어로 로컬 개발 환경 시작 가능
  • plain.pytest: 인기 있는 Python 테스트 라이브러리로 테스트 작성 및 실행 가능
  • plain.code: 기본 설정으로 Python 코드 포맷팅 및 린팅 가능
  • plain.tunnel: 웹훅 통합을 위해 로컬 앱을 인터넷에 노출 가능

프론트엔드

  • plain.tailwind: 인기 있는 CSS 프레임워크와의 일급 통합 제공
  • plain.htmx: 기존 도구를 사용하여 현대적인 사용자 경험 구축 가능
  • plain.elements: 앱의 템플릿에서 재사용 가능한 컴포넌트에 대한 새로운 패러다임 제공
  • plain.pages: HTML 및 Markdown을 사용한 파일 기반 라우팅 제공
  • plain.esbuild: JavaScript 컴파일을 위한 간소화된 빌드 프로세스 제공
  • plain.vendor: CDN에 의존하지 않고 JavaScript 및 CSS 자산을 다운로드하고 자체 호스팅 가능

See also

Favorite site