- Framework web được thiết kế để xây dựng sản phẩm nhanh chóng bằng Python (fork từ Django)
- Có thể bắt đầu phát triển cục bộ chỉ với một lệnh duy nhất, và chuyển sang production thông qua dashboard cùng feature flag
- Clone starter kit để bắt đầu nhanh
- Bao gồm gói
plain cốt lõi và các gói mở rộng chính thức có thể cài đặt tùy chọn
Các tính năng của gói plain
- Kết nối URL pattern với các hàm view Python
- Xử lý HTTP request và response
- Render HTML bằng template Jinja
- Form để xử lý dữ liệu nhập từ người dùng
- Cung cấp giao diện dòng lệnh (CLI)
- Có thể phục vụ static assets như CSS, JS, hình ảnh
- Mở rộng tính năng ứng dụng thông qua middleware
- Dễ dàng tích hợp các gói chính thức và bên thứ ba
- Cung cấp chức năng kiểm tra trước khi chạy ứng dụng (preflight check system)
Các tính năng mở rộng thông qua các gói first-party
- plain.models: Cung cấp ORM để lưu trữ dữ liệu trên Postgres, MySQL, SQLite
- plain.cache: Giải pháp cache hoạt động cùng cơ sở dữ liệu hiện có
- plain.email: Cung cấp cấu hình và chức năng gửi email cho toàn bộ ứng dụng
- plain.sessions: Có thể đọc và ghi session dựa trên cơ sở dữ liệu
- plain.worker: Giải pháp tác vụ nền hỗ trợ cơ sở dữ liệu hiện có
- plain.api: Có thể xây dựng JSON API bằng kiến trúc view dựa trên class
Liên quan đến xác thực
- plain.auth: Cung cấp nền tảng để thêm người dùng, xác thực request và giới hạn quyền truy cập vào view
- plain.oauth: Giải pháp OAuth linh hoạt hỗ trợ social login hiện đại và truy cập API
- plain.passwords: Hỗ trợ đăng nhập dựa trên mật khẩu theo cách truyền thống
- plain.loginlink: Cung cấp liên kết đăng nhập một lần không cần mật khẩu
- plain.passkeys: Dự kiến cung cấp tính năng đăng nhập không mật khẩu
Quản trị
- plain.admin: Cung cấp dashboard quản trị có thể tùy biến hoàn toàn
- plain.flags: Cho phép kiểm soát nội dung theo từng người dùng bằng feature flag dựa trên cơ sở dữ liệu
- plain.support: Cung cấp hỗ trợ khách hàng mà không cần dịch vụ bên thứ ba
- plain.redirection: Giám sát 404 và quản lý chuyển hướng trong cơ sở dữ liệu
- plain.pageviews: Xem được nội dung người dùng đang xem để hỗ trợ tốt hơn
Phát triển
- plain.dev: Có thể khởi động môi trường phát triển cục bộ chỉ với một lệnh
- plain.pytest: Có thể viết và chạy test bằng thư viện test Python phổ biến
- plain.code: Có thể format và lint mã Python với thiết lập mặc định
- plain.tunnel: Có thể đưa ứng dụng cục bộ ra Internet để tích hợp webhook
Frontend
- plain.tailwind: Cung cấp tích hợp hạng nhất với framework CSS phổ biến
- plain.htmx: Có thể xây dựng trải nghiệm người dùng hiện đại bằng các công cụ hiện có
- plain.elements: Cung cấp một mô hình mới cho các component có thể tái sử dụng trong template của ứng dụng
- plain.pages: Cung cấp file-based routing bằng HTML và Markdown
- plain.esbuild: Cung cấp quy trình build tinh gọn cho việc biên dịch JavaScript
- plain.vendor: Có thể tải xuống và tự host tài nguyên JavaScript và CSS mà không phụ thuộc vào CDN
1 bình luận
Ý kiến trên Hacker News
Có thể nhiều người không biết rằng trình theo dõi lỗi của Django Rest Framework đã chuyển sang chế độ riêng tư và đang tìm người bảo trì mới
Có cảm xúc lẫn lộn về việc fork Django
Điểm mạnh của Django là ORM và hệ sinh thái/thành ngữ của nó
Django có một số nhược điểm
Ngạc nhiên trước cảm xúc tiêu cực về Django
Đã chuyển từ Django sang Supabase/Firebase
Không thích việc cấu hình là các chuỗi tham chiếu đến class
Đã xem qua tài liệu của Plain
Không biết Plain có thành công hay không, nhưng hiểu lý do của bản fork