9 Kerangka Python Terbaik untuk Membangun Aplikasi Kecil ke Perusahaan

Python adalah mainan yang menyenangkan dan penyembur api yang menakutkan. Sama halnya dengan apa yang dapat Anda lakukan dengan Python.


Python dicintai oleh para penghobi, ilmuwan, dan arsitek.

Sangat mudah untuk memulai, memiliki abstraksi tingkat tinggi dan kemampuan metaprogram untuk membangun sistem yang besar dan kompleks, dan memiliki banyak sekali perpustakaan untuk melakukan hampir semua hal. Tentu, ada batasan dalam hal konkurensi dan pengetikan yang kuat, tetapi Anda bisa mengatasinya.

Dalam artikel ini, kami akan melihat beberapa kerangka kerja Python terbaik dalam hal membangun aplikasi web besar dan kecil.

Django

Itu Django framework telah bertahan dalam ujian waktu framework go-to web untuk komunitas Python. Jika Anda menyerang pengembang Python dalam tidur mereka dan memaksa mereka untuk membangun aplikasi web dengan todongan senjata, mereka akan secara otomatis meraih Django seperti cara seorang Rubyist meraih Rails.

Dan ada alasan bagus untuk itu. Django adalah, seperti kata tagline, “kerangka kerja web untuk perfeksionis dengan tenggat waktu.” Ini adalah apa yang disebut kerangka kerja “termasuk baterai” (seperti bagaimana Python adalah bahasa yang termasuk baterai), yang menyediakan semua fungsi umum di luar kotak.

Dengan fitur-fitur ini, Django secara besar-besaran mengurangi waktu pengembangan:

  • ORM yang praktis dan menyenangkan, dengan migrasi yang dibuat dan diterapkan secara otomatis oleh framework.
  • Perancah untuk pembuatan panel admin otomatis berdasarkan model Anda.
  • Dukungan untuk cookie, sesi, middleware, template, dll.
  • Fitur keamanan seperti pencegahan XSS, pencegahan CRSF, dll., Diterapkan secara otomatis.
  • Bekerja dengan hampir semua basis data di luar sana (mudah untuk menemukan adaptor di mana dukungan resmi tidak ada)
  • Dukungan kelas satu untuk data geografis dan kueri spasial GeoJango

Dan masih banyak lagi. Cukuplah untuk mengatakan bahwa Django adalah kerangka kerja web yang lengkap dan ramah.

Apakah Django untuk Anda?

Pastinya ya.

Django sangat masuk akal untuk semua kasus penggunaan, baik pembuatan prototipe cepat atau perencanaan aplikasi perusahaan. Satu-satunya tepi kasar yang akan Anda temui adalah struktur kerangka kerja. Karena Django membungkuk ke belakang untuk membuat pengembangan cepat dan mudah bagi Anda, itu memaksakan strukturnya (sebuah konsep yang disebut “konvensi atas konfigurasi”) pada pengembang, yang mungkin tidak Anda setujui. Misalnya, jika Anda ingin mengganti ORANG Django dengan sesuatu yang lain (katakanlah, Alchemy SQL), bersiaplah untuk kejutan..

Tertarik menjadi pengembang tumpukan penuh dengan Django dan Python? – Lihat ini kursus online yang fantastis.

Labu

Sementara Django mengambil hampir semua mindshare dalam pengembangan web Python, Labu adalah pesaing yang kuat.

Berbeda dengan Django, Flask adalah “kerangka-mikro,” yang artinya berfokus pada mendapatkan beberapa, menangkan hal-hal minimum dengan benar, dan menyerahkan sisanya kepada Anda. “Sisanya terserah Anda” bisa menjadi sumber frustrasi atau kegembiraan, tergantung pada apa tujuan Anda. Bagi mereka yang tahu apa yang mereka lakukan dan ingin membuat aplikasi web mereka dengan penuh kasih dengan memilih komponen pilihan mereka, Flask adalah anugerah.

Flask menawarkan fitur-fitur berikut:

  • Routing, templating, manajemen sesi, dan fitur berguna lainnya.
  • Dukungan penuh untuk pengujian unit
  • Minimal, arsitektur pluggable
  • Dukungan REST kelas satu
  • Mendukung Blueprints, arsitektur unik Flask untuk aplikasi web kecil
  • Pilih paket Anda untuk ORM, migrasi, dll.
  • Struktur aplikasi yang fleksibel – letakkan file Anda di tempat yang paling masuk akal bagi Anda
  • Penyajian file statis
  • WGSI compliant

Apakah Labu untuk Anda?

Seperti yang sudah dikatakan, Flask adalah kerangka kerja web yang minimal, dengan semuanya dipecah menjadi beberapa komponen yang dapat Anda tukar. Jika Anda terburu-buru membangun prototipe, Anda akan menghabiskan banyak waktu untuk membuat keputusan sepele tentang basis data, struktur folder, perutean, dll., Yang dapat terbukti kontra-produktif. Flask bekerja paling baik ketika Anda berada di proyek stabil, serius untuk skala menengah hingga besar, terutama REST API.

Botol

Jika Anda berpikir pendekatan Flask tidak cukup minimal dan Anda masih ingin lebih banyak kontrol, ucapkan halo Botol.

Botol semakin mengupas, ke titik di mana satu-satunya ketergantungan adalah perpustakaan standar Python. Ini berarti tidak ada pip menginstal ini atau menginstal pip itu, meskipun Anda kemungkinan besar perlu lama. Inilah mengapa Botol menonjol bagi sebagian orang:

  • Penempatan satu file. Ya, seluruh aplikasi Anda hidup dalam satu file “.py”.
  • Tidak ada ketergantungan eksternal. Jika Anda memasang versi Python yang tepat, Anda dapat melakukannya.
  • Persediaan mesin templating, yang dapat ditukar dengan Jinja2, Mako, atau Cheetah.
  • Dukungan untuk formulir, tajuk, cookie, dan unggahan file.
  • Server web bawaan, yang dapat dengan mudah diganti.

Apakah Botol untuk Anda?

Jika Anda membuat aplikasi yang sangat kecil (misalnya, kurang dari 500 baris kode) tanpa persyaratan khusus, Bottle mungkin membuat banyak akal bagi Anda. Ini adalah pendekatan tanpa basa-basi yang lengkap untuk membuat aplikasi web, tetapi dalam praktiknya, Anda akan menemukan bahwa Anda lebih terhalang daripada dibantu oleh Bottle. Alasannya adalah bahwa dunia nyata selalu berubah dan sebelum Anda menyadarinya. Persyaratan baru akan jatuh di kepala Anda. Pada titik itu, meletakkan segala sesuatu dalam satu file akan menjadi tugas.

Juga, jika Anda berpikir Botol dan Labu hampir sama, Anda benar. Proposal dari penggabungan dua tanggal kembali ke 2012, dan bahkan Armin, pencipta Flask, setuju dengan itu. Namun, Marcel, pencipta Botol, mempertahankan perbedaan ideologis yang ketat karena pendekatan satu-file dan menegaskan bahwa keduanya tetap terpisah.

Zope

Zope rumit untuk dijelaskan, tetapi saya akan berusaha. Ya, itu adalah kerangka kerja web yang dapat digunakan untuk membangun aplikasi besar atau kecil, tetapi tidak semuanya. Zope lebih merupakan platform yang terdiri dari alat-alat (termasuk kerangka kerja web) yang dibuat di bawah filosofi Zope dan dikelola oleh Zope Corporation.

Zope memiliki beberapa komponen dan fitur menarik yang cocok untuk pengembangan aplikasi perusahaan:

  • Arsitektur pendaftaran dan penemuan komponen untuk mengonfigurasi aplikasi besar.
  • ZODB – (satu-satunya) objek database untuk Python untuk menyimpan objek secara asli.
  • Kerangka kerja lengkap dan standar untuk Sistem Manajemen Konten
  • Seperangkat kerangka kerja aplikasi web – kerangka kanonik masih disebut Zope, meskipun beberapa kerangka kerja baru (seperti Grok) telah dibangun di atasnya.
  • Standar yang kuat untuk pengembangan, rilis, dan pemeliharaan perangkat lunak.

Apakah Zope untuk Anda?

Jika Anda mencari lingkungan yang sangat terstruktur untuk membangun aplikasi yang sangat besar, Zope baik. Yang mengatakan, Anda juga akan mengalami masalah yang adil. Sementara Zope terus berevolusi, komunitasnya sangat kecil, sehingga banyak pengembang Python bahkan belum pernah mendengarnya. Menemukan tutorial dan dokumentasi yang luas itu sulit, jadi bersiaplah untuk melakukan banyak penggalian (meskipun komunitas sangat membantu!). Juga, pengembang Python yang Anda temui mungkin tidak ingin mempelajari Zope dan “mencairkan” keahlian mereka.

TurboGears

TurboGears adalah kerangka kerja yang sangat fleksibel yang memiliki arsitektur yang benar-benar dapat dikompilasi. Ini adalah kerangka kerja yang berskala sesuai kebutuhan Anda, dan Anda dapat menggunakannya untuk membangun aplikasi file tunggal atau raksasa multi-tenancy.

TurboGears memiliki beberapa fitur elegan, beberapa di antaranya tidak ada dalam kerangka kerja populer (seperti Django) atau sulit dibangun:

  • Dukungan kelas satu untuk banyak basis data
  • Transaksi multi-basis data
  • Sangat modular – mulai dengan satu file dan skala sebanyak yang Anda butuhkan
  • ORM yang kuat (SQLAlchemy, yang lebih dewasa dan mampu daripada ORM Django)
  • Arsitektur pluggable berdasarkan spesifikasi WSGI
  • Dukungan bawaan untuk sharding basis data
  • Antarmuka yang digerakkan oleh fungsi yang bertentangan dengan hierarki berorientasi objek yang dalam dan kaku.

Apakah TurboGears untuk Anda?

Jika Anda ingin berkembang dengan gembira dan ingin kerangka kerja yang teruji, matang, dan kuat jauh dari kebisingan media “luar biasa, generasi berikutnya” dan semua itu, TurboGears sangat cocok. Ini sangat dihormati di komunitas dan memiliki dokumentasi yang lengkap dan luas. Tentu, TurboGears tidak berpendapat, yang berarti pengaturan awal dan waktu konfigurasi bisa lebih, tapi itu kerangka kerja ideal untuk pengembangan aplikasi perusahaan.

Web2py

Web2py dimulai sebagai proyek hobi dan dirilis pada 2007. Tujuannya adalah untuk membuat pengembangan web mudah dan dapat diakses oleh semua orang.

Akibatnya, Web2py mengambil pendekatan zero-dependency hingga ekstrem – tidak memiliki persyaratan, tidak perlu menginstal, dan menyertakan editor berbasis web berfitur lengkap untuk pengembangan, manajemen basis data, serta penyebaran.

Anda hampir dapat menganggapnya sebagai Android Studio, yang lebih merupakan lingkungan yang lengkap daripada hanya sebuah kerangka kerja. Beberapa fitur bagus yang dimiliki Web2py, adalah:

  • Hampir tidak ada kurva belajar.
  • Minimal core (hanya 12 objek), yang bahkan bisa dihafal!
  • Templating murni-Python
  • Perlindungan terhadap XSS, CSRF, dan serangan lainnya
  • API yang menyenangkan dan konsisten

Apakah Web2py untuk Anda?

Web2py adalah kerangka kerja yang stabil dan menyenangkan, tetapi sulit untuk merekomendasikannya terhadap opsi lain seperti Django, Flask, dll. Hampir tidak ada pekerjaan, dan cerita pengujian unit tidak bagus. Karena itu, Anda dapat menikmati API kode dan pengalaman keseluruhan yang ditawarkan kerangka kerja, terutama jika Anda sedang membangun API REST.

CherryPy

CherryPy adalah pekerjaan mikro lain yang bertujuan untuk menyediakan fungsionalitas kerangka dasar dan cepat keluar dari jalan.

Meskipun sebanding dengan karya mikro lain seperti Flask, CherryPy menawarkan beberapa perbedaan:

  • Ini berisi server multi-utas bawaan (sesuatu yang tetap ada di wishlist Flask)
  • Server web (tunggal) dapat meng-host beberapa aplikasi!
  • Sajikan aplikasi Anda sebagai aplikasi WSGI (untuk berinteraksi dengan aplikasi WSGI lainnya) atau server HTTP biasa (yang berkinerja lebih baik)
  • Dukungan kelas satu untuk profil dan pengujian unit
  • Berjalan di PyPy (untuk pecandu kinerja sejati), Jython, dan bahkan Android

CherryPy melakukan semua ini, dan kemudian yang biasa Anda harapkan dari kerangka web.

Apakah CherryPy untuk Anda?

Jika Anda kebanyakan membangun layanan RESTful, CherryPy adalah pesaing yang jauh lebih serius daripada Flask. Ini adalah kerangka kerja berumur satu dekade yang telah matang dengan baik dan cocok untuk aplikasi kecil dan besar.

Sanic

Munculnya Node dan model pemrogramannya yang tidak sinkron membuat banyak komunitas merasa tertinggal, termasuk Python. Sebagai tanggapan, kebingungan kerangka kerja async telah muncul di radar, Sanic menjadi salah satu dari mereka.

Sanic sangat terinspirasi oleh Flask, sampai-sampai meminjam dekorator rute, Cetak Biru, dan dasar-dasar hook dan sinker fundamental lainnya. Dan mereka tidak malu mengakuinya. Apa yang Sanic bawa ke meja, jika Anda adalah penggemar Flask, adalah benar-benar I / O yang tidak menghalangi untuk memenuhi tingkat kinerja aplikasi Node. Dengan kata lain, Sanic adalah Labu dengan dukungan async / menunggu!

Bila dibandingkan dengan CherryPy, Sanic memiliki keunggulan kinerja yang luar biasa (hanya memikirkan bagaimana itu akan berlaku terhadap Flask!). Lihatlah hasil-hasil berikut yang diuji oleh DataWeave:

Seperti yang Anda lihat, setelah angka konkurensi mulai melebihi 50 per detik, CherryPy praktis tersedak dan memuntahkan tingkat kegagalan yang tinggi.

Apakah Sanic untuk Anda?

Walaupun karakteristik kinerja Sanic membuat segalanya keluar dari air, itu mungkin bukan pilihan terbaik untuk proyek Anda berikutnya. Alasan utamanya adalah kurangnya perpustakaan yang tidak sinkron. Sebagian besar alat dan perpustakaan Python yang ada ditulis untuk versi CPython single-threaded, tanpa pemikiran untuk konkurensi tinggi atau operasi asinkron. Jika, misalnya, ORM favorit Anda tidak mendukung operasi asinkron, seluruh titik penggunaan Sanic dikalahkan.

Karena alasan kedewasaan dan ketersediaan ini, kami tidak akan memeriksa kerangka async lagi di Python.

Masonite

Saya menemukan kerangka ini beberapa waktu lalu dan berpikir itu adalah langkah ke arah yang benar. Sejak itu, versi 2.0 telah dirilis, dan saya merasa sudah waktunya untuk memberi Masonite Beberapa cinta.

Sederhananya, Masonite adalah versi Python Laravel (kerangka kerja PHP yang terkenal, jika Anda tidak tahu). Mengapa itu penting? Itu penting karena Laravel dibangun berdasarkan prinsip-prinsip Ruby on Rails, dan bersama-sama kedua kerangka kerja ini memungkinkan pengembang non-Ruby untuk mengalami “Jalan Rails” dalam melakukan berbagai hal..

Pengembang Laravel (dan sampai batas tertentu, Rails) akan merasa seperti di rumah dan akan siap dan berjalan dalam waktu singkat. Ketika saya mencoba Masonite (dan saya memang mengirim satu atau dua masalah, termasuk bug!), Saya dapat membangun REST APIs tanpa berpikir sama sekali karena memori otot Laravel saya melakukan segalanya.

Sebagai kerangka penuh-tumpukan baterai, Masonite menghadirkan beberapa hal menarik:

  • Rekam aktif gaya ORM
  • Migrasi basis data (yang, tidak seperti Django, perlu dibuat oleh pengembang)
  • Wadah IoC yang kuat untuk injeksi ketergantungan
  • CLI sendiri (disebut “kerajinan”) untuk tugas perancah dan menjalankan
  • Dukungan kelas satu untuk pengujian unit

“Pesaing” terbesar bagi Masonite adalah Django, karena komunitas melakukan yang terbaik untuk memasarkan kerangka kerja itu dengan mudah, menyenangkan, dan hal besar berikutnya. Apakah itu akan melampaui Django adalah sesuatu waktu akan memberitahu (jika Anda bertanya kepada saya, itu memang memiliki kesempatan yang baik), tetapi untuk diskusi membandingkan keduanya, lihat sini dan sini.

Apakah Masonite untuk Anda?

Masonite masih bayi jika dibandingkan dengan Django, jadi tidak mungkin direkomendasikan dibandingkan Django. Yang mengatakan, jika Anda menyukai cara Rails (atau cara Laravel) melakukan sesuatu, Anda akan menghargai apa yang ditawarkan oleh Masonite. Ini ideal untuk membuat prototipe dengan cepat yang membutuhkan semua yang sudah dikonfigurasikan sebelumnya dan mudah diganti.

Kesimpulan

Tidak ada kekurangan kerangka kerja web Python di luar sana, besar dan kecil. Meskipun Anda dapat mengambil cukup banyak apa pun untuk proyek kecil, aplikasi perusahaan memiliki tuntutan yang tidak banyak dari kerangka kerja ini dapat penuhi. Jika Anda bertanya kepada saya, untuk pengembangan perusahaan, Django (sampai batas tertentu), Zope, dan TurboGears adalah apa yang terlintas dalam pikiran. Dan bahkan di antara mereka, saya cenderung ke TurboGears.

Yang mengatakan, setiap arsitek senilai garamnya dapat mengambil pekerjaan mikro dan menggelar arsitektur mereka. Dan inilah yang terjadi dalam praktik, yang menjelaskan keberhasilan Flask dan ide-ide serupa.

Jika Anda seorang pemula, maka kursus online ini akan sangat membantu untuk belajar Python.

TAGS:

  • Python

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map