- เว็บเฟรมเวิร์กที่ออกแบบมาเพื่อให้สร้างโปรดักต์ด้วย Python ได้อย่างรวดเร็ว (fork มาจาก Django)
- สามารถเริ่มพัฒนาแบบโลคัลได้ด้วยคำสั่งเดียว และย้ายไปสู่โปรดักชันได้ผ่านแดชบอร์ดและฟีเจอร์แฟลก เป็นต้น
- โคลน starter kit เพื่อเริ่มต้นได้อย่างรวดเร็ว
- ประกอบด้วยแพ็กเกจหลัก
plain และแพ็กเกจเสริมทางการที่ติดตั้งเพิ่มเติมได้ตามต้องการ
ความสามารถของแพ็กเกจ plain
- เชื่อมโยงรูปแบบ URL กับฟังก์ชัน view ของ Python
- จัดการคำขอและคำตอบ HTTP
- เรนเดอร์ HTML ด้วยเทมเพลต Jinja
- Form สำหรับจัดการข้อมูลที่ผู้ใช้ป้อน
- มีอินเทอร์เฟซบรรทัดคำสั่ง (CLI)
- ให้บริการ static assets เช่น CSS, JS และรูปภาพได้
- ขยายความสามารถของแอปผ่าน Middleware
- ผสานรวมแพ็กเกจทางการและแพ็กเกจ third-party ได้อย่างง่ายดาย
- มีระบบตรวจสอบล่วงหน้าก่อนรันแอป (Preflight check system)
ความสามารถที่ขยายได้ผ่านแพ็กเกจ first-party
- plain.models: มี ORM สำหรับจัดเก็บข้อมูลใน Postgres, MySQL และ SQLite
- plain.cache: โซลูชันแคชที่ทำงานร่วมกับฐานข้อมูลเดิมได้
- plain.email: มีความสามารถสำหรับตั้งค่าและส่งอีเมลทั้งแอป
- plain.sessions: อ่านและเขียนเซสชันแบบอิงฐานข้อมูลได้
- plain.worker: โซลูชันงานเบื้องหลังที่รองรับฐานข้อมูลเดิม
- plain.api: สร้าง JSON API ได้ด้วยสถาปัตยกรรม class-based view
การยืนยันตัวตน
- plain.auth: มีพื้นฐานสำหรับเพิ่มผู้ใช้ ยืนยันตัวตนคำขอ และจำกัดการเข้าถึง view
- plain.oauth: โซลูชัน OAuth ที่ยืดหยุ่น รองรับ social login สมัยใหม่และการเข้าถึง API
- plain.passwords: รองรับการล็อกอินแบบใช้รหัสผ่านดั้งเดิม
- plain.loginlink: มีลิงก์ล็อกอินแบบใช้ครั้งเดียวสำหรับการล็อกอินโดยไม่ใช้รหัสผ่าน
- plain.passkeys: มีแผนจะรองรับการล็อกอินแบบไม่ใช้รหัสผ่าน
ผู้ดูแลระบบ
- plain.admin: มีแดชบอร์ดผู้ดูแลระบบที่ปรับแต่งได้อย่างสมบูรณ์
- plain.flags: ฟีเจอร์แฟลกแบบอิงฐานข้อมูลที่ควบคุมคอนเทนต์รายผู้ใช้ได้
- plain.support: ให้บริการซัพพอร์ตลูกค้าได้โดยไม่ต้องพึ่งบริการภายนอก
- plain.redirection: มอนิเตอร์ 404 และจัดการการรีไดเรกต์จากฐานข้อมูล
- plain.pageviews: ดูได้ว่าผู้ใช้กำลังเห็นอะไร เพื่อให้การซัพพอร์ตที่ดียิ่งขึ้น
การพัฒนา
- plain.dev: เริ่มสภาพแวดล้อมพัฒนาแบบโลคัลได้ด้วยคำสั่งเดียว
- plain.pytest: เขียนและรันทดสอบได้ด้วยไลบรารีทดสอบยอดนิยมของ Python
- plain.code: ฟอร์แมตและ lint โค้ด Python ได้ด้วยค่าตั้งต้นพื้นฐาน
- plain.tunnel: เปิดแอปโลคัลสู่อินเทอร์เน็ตเพื่อการผสานรวม webhook
ฟรอนต์เอนด์
- plain.tailwind: มีการผสานรวมระดับ first-class กับ CSS framework ยอดนิยม
- plain.htmx: สร้างประสบการณ์ผู้ใช้สมัยใหม่ได้ด้วยเครื่องมือที่มีอยู่เดิม
- plain.elements: นำเสนอกระบวนทัศน์ใหม่สำหรับคอมโพเนนต์ที่นำกลับมาใช้ซ้ำได้ในเทมเพลตของแอป
- plain.pages: มี file-based routing โดยใช้ HTML และ Markdown
- plain.esbuild: มีกระบวนการบิลด์ที่เรียบง่ายสำหรับการคอมไพล์ JavaScript
- plain.vendor: ดาวน์โหลดและโฮสต์ JavaScript และ CSS assets เองได้โดยไม่ต้องพึ่ง CDN
1 ความคิดเห็น
ความเห็นบน Hacker News
หลายคนอาจไม่รู้ว่า bug tracker ของ Django Rest Framework ถูกเปลี่ยนเป็นแบบปิด และกำลังมองหาผู้ดูแลคนใหม่
มีความรู้สึกทั้งบวกและลบต่อการ fork ของ Django
จุดแข็งของ Django คือ ORM และ ecosystem/แนวปฏิบัติ
Django มีข้อด้อยอยู่บ้าง
รู้สึกประหลาดใจกับมุมมองด้านลบต่อ Django
ย้ายจาก Django ไปใช้ Supabase/Firebase
ไม่ชอบที่การตั้งค่าเป็นสตริงที่อ้างถึงคลาส
ลองดูเอกสารของ Plain
ไม่แน่ใจว่า Plain จะประสบความสำเร็จหรือไม่ แต่เข้าใจเหตุผลของการ fork