Plain
파이썬용 웹 프레임워크
About
- Python으로 프로덕트를 빠르게 구축할 수 있도록 설계된 웹 프레임워크 (Django를 포크)
- 싱글 커맨드로 로컬 개발 시작 가능하며, 대시보드와 기능 플래그 등을 통해 프로덕션으로 이동할 수 있음
- 스타터 킷을 클론 하여 빠르게 시작
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 자산을 다운로드하고 자체 호스팅 가능