10 kerangka kerja web Python layak untuk digunakan pada tahun 2018

gambar

Dari seorang penerjemah: Hari ini kami menawarkan Anda sebuah terjemahan dari artikel yang diposting di SteelKiwi oleh Hackernoon. Dia terlibat dalam pengembangan solusi perangkat lunak b2b dan b2c, dan berbagi pengalaman yang diperoleh dalam proses bekerja dengan pembaca blognya.

Kerangka kerja membuat hidup lebih mudah bagi pengembang dengan menawarkan berbagai solusi untuk mengembangkan aplikasi dan layanan. Mereka mengotomatiskan penerapan solusi standar, menghemat waktu. Dengan demikian, pengembang berfokus pada aplikasi, dan bukan pada tugas-tugas rutin, di mana pemikiran kreatif tidak diperlukan.

Skillbox merekomendasikan: Pengembang Python dari awal tentu saja.
Kami mengingatkan Anda: untuk semua pembaca "Habr" - diskon 10.000 rubel saat mendaftar untuk kursus Skillbox apa pun menggunakan kode promosi "Habr".

Artikel ini berbicara tentang sepuluh kerangka kerja Python yang akan berguna bagi pengembang pemula dan profesional. Pada tahun 2018, kerangka kerja lama diperbarui, muncul alat baru yang layak untuk diperhatikan.

Sebelum Anda mulai ...


Ketika Anda mulai memilih kerangka kerja, hargai ukuran dan kompleksitas proyek Anda. Jika yang Anda kembangkan adalah sistem besar dengan sejumlah fungsi yang wajar, maka kerangka kerja tumpukan penuh adalah yang Anda butuhkan. Jika Anda membuat aplikasi atau layanan yang relatif kecil, maka Anda harus memperhatikan mikroframe.

Informasi tentang beberapa kerangka kerja disediakan di halaman Wikipedia . Namun keputusan akhir, Anda harus membuat diri Anda berdasarkan pada prinsip-prinsip analisis layanan atau aplikasi Anda sendiri yang sudah disuarakan di atas.

Kerangka kerja tumpukan penuh


Django



Django adalah framework full-stack open-source gratis. Ini memungkinkan Anda untuk menambahkan sebagian besar fungsi standar dalam satu paket daripada mencari pustaka individual.

Diantaranya adalah yang populer seperti otentikasi, perutean URL, migrasi skema data, dll.

Django menggunakan ORM untuk memetakan objek ke tabel database. Kode yang sama berfungsi dengan basis data yang berbeda, sehingga berpindah dari satu basis data ke basis data lainnya menjadi tugas yang sederhana. Basis data utama yang bekerja dengan Django adalah PostgreSQL, MySQL, SQLite, dan Oracle. Anda dapat menambahkan orang lain, tetapi untuk ini Anda membutuhkan solusi pihak ketiga.

Piramida



Piramida adalah kerangka kerja sumber terbuka yang memberikan peluang maksimum bagi pengembang dengan waktu dan sumber daya yang minimal.

Fitur paling menarik dari framework ini adalah bekerja dengan aplikasi besar dan kecil. Secara terpisah, ada baiknya menyoroti fungsi Piramida seperti:


Turboears



TurboGears adalah kerangka kerja tumpukan penuh sumber terbuka untuk aplikasi web. Ini memungkinkan pengembang untuk dengan cepat membuat aplikasi web berbasis data yang dapat diperluas. TurboGears hadir dengan templat yang nyaman dan ORM yang kuat dan fleksibel.

Fungsi terpenting dari kerangka kerja:

  • dukungan untuk berbagai database;
  • dukungan untuk SQLObject dan SQLAlchemy ;
  • validasi untuk FormEncode ;
  • Pylons sebagai server web;
  • alat baris perintah.

Web2py



Dan ini adalah kerangka kerja penuh-tumpukan sumber terbuka yang dapat diskalakan untuk Python. Tetapi sebelum Anda mulai bekerja dengannya, perlu diingat bahwa itu tidak kompatibel dengan Python 3.

Tapi Web2py hadir dengan IDE-nya sendiri: ia memiliki editor kode, debugger, dan penyebaran satu-klik. Di antara fungsi dan alat lainnya, ada baiknya menyoroti yang berikut ini:

  • kurangnya kebutuhan untuk instalasi dan konfigurasi;
  • bekerja di Windows, Mac, Google App Engine, Amazon EC2, dan pada hosting apa pun yang mendukung Python 2.5–2.7 atau Java + Python;
  • bekerja dengan berbagai protokol;
  • tingkat keamanan data yang tinggi;
  • pelacak kesalahan;
  • kompatibilitas ke belakang, yang memungkinkan Anda untuk bekerja dengan aplikasi dan layanan berdasarkan versi kerangka kerja sebelumnya.

Microframes


Labu



Ini adalah pekerjaan mikro yang dilisensikan di bawah BSD. Pengembangnya terinspirasi oleh kerangka kerja Sinatra Ruby. Itu tergantung pada toolkit Werkzeug WSGI dan template Jinja2 .

Flask memiliki desain modular yang memungkinkannya diadaptasi untuk banyak tugas. Di luar kotak, pengembang menerima fungsi-fungsi berikut:

  • server dan debugger bawaan;
  • Templat Jinja2
  • dukungan untuk cookie aman;
  • WSGI 1.0;
  • Unicode
  • kemampuan untuk terhubung ke ORM.

Kerangka kerja dibuat untuk mendukung pengembang aplikasi web yang diberi kesempatan untuk memilih ekstensi yang mereka sukai.

Botol



Microframework lain yang awalnya dimaksudkan untuk membuat API. Botol dibedakan dengan adanya satu file sumber tunggal. Bekerja dengannya tidak perlu "menari dengan rebana."

Fitur standarnya meliputi perutean, templat, utilitas, dan abstraksi WSGI dasar:

  • Routing mendukung permintaan untuk menampilkan panggilan fungsional, memungkinkan Anda untuk mendapatkan URL yang bersih dan dinamis.
  • template - banyak alat berguna yang bekerja di luar kotak bersama dengan dukungan penuh untuk mako, jinja2 dan cheetah.
  • Utilitas - akses mudah ke data, mengunduh file, cookie, header, dan metadata lain yang terkait dengan HTTP.
  • server pengembangan HTTP bawaan yang mendukung fungsi fapws3, bjoern, GAE, CherryPy, dan server HTTP lainnya dengan WSGI.

Ini adalah solusi yang bagus untuk membuat prototipe, mempelajari struktur kerangka kerja web dan membuat aplikasi kecil.

Ceri



CherryPy adalah kerangka web open source minimalis. Ini memberikan kemampuan untuk membuat aplikasi web Python, yang tidak berbeda dari membangun program berorientasi objek lainnya.

Bahkan, aplikasi web berbasis CherryPy ini adalah aplikasi Python yang berdiri sendiri menggunakan server web multi-threaded sendiri. Aplikasi CherryPy berjalan pada sistem operasi apa pun yang mendukung Python (Windows, MacOS, Linux, dll.). Mereka dapat digunakan di lingkungan mana pun di mana Anda dapat menjalankan aplikasi Python biasa. Anda tidak memerlukan aplikasi Apache untuk CherryPy, Anda dapat menjalankan aplikasi CherryPy di ​​Apache, seperti di Lighttpd atau IIS.

CherryPy memungkinkan Anda untuk menggunakan segala jenis teknologi untuk pola, akses data, dll. Itu juga dapat memproses artikel, statika, cookie, mengunggah file dan segala hal lain yang bisa dilakukan kerangka kerja lainnya.

Kemampuan khasnya:

  • Peluncuran sederhana beberapa server HTTP secara bersamaan
  • sistem konfigurasi yang kuat;
  • sistem plugin yang fleksibel;
  • "Out of the box" fitur: caching, decoding, sesi, otentikasi, konten statis, dll;
  • Kemampuan untuk bekerja di bawah Python 2.7+, Python 3.1+, PyPy, Jython dan Android.

Kerangka kerja asinkron


Sanic

Sanic adalah kerangka kerja Python yang dibangun di atas uvloop dan dirancang untuk memproses permintaan HTTP dengan cepat.

Ini bekerja pada Python 3.5+. Sanic mendukung penangan permintaan yang tidak sinkron, menjadikannya kompatibel dengan fungsi menunggu / Python 3.5. Ini sangat meningkatkan kecepatan kerja.

Dalam patokan saat memproses 100 koneksi, Sanic menunjukkan kemampuan untuk memproses 33.342 permintaan per detik.

Tornado



Tornado adalah kerangka kerja web Python dan pustaka jaringan asinkron secara bersamaan. Ini menggunakan I / O jaringan non-blocking dan memecahkan masalah C10k (yang berarti jika dikonfigurasi dengan benar, ia dapat menangani 10.000+ koneksi bersamaan).

Semua ini menjadikannya alat yang sangat baik untuk membuat aplikasi yang membutuhkan kinerja tinggi dan bekerja dengan puluhan ribu pengguna secara bersamaan.

Keuntungan utama:

  • Dukungan otentikasi pengguna internal
  • layanan waktu nyata;
  • kinerja berkualitas tinggi;
  • Bahasa templat web Python
  • Klien HTTP yang tidak memblokir
  • implementasi skema otentikasi dan otorisasi pihak ketiga (Google OpenID / OAuth, Login Facebook, Yahoo BBAuth, FriendFeed OpenID / OAuth, Twitter OAuth);
  • dukungan untuk terjemahan dan pelokalan.

Bonus


Dash



Dash adalah kerangka kerja Python open source yang digunakan untuk membangun aplikasi web analitik. Ini sangat baik untuk profesional big data yang tidak terlalu mengenal pengembangan web.

Aplikasi Dash adalah server web yang menjalankan Flask dan bertukar data dengan paket JSON melalui HTTP. Antarmuka mereka menyediakan komponen dengan kemampuan React.js.

Aplikasi yang dikembangkan dengan Dash ditampilkan di browser web dan dapat digunakan untuk server. Aplikasi Dash secara inheren lintas platform.

Sebagai kesimpulan, kita dapat mengatakan bahwa sebenarnya ada banyak kerangka kerja untuk pengembang. Masing-masing dari mereka memberikan peluang uniknya sendiri. Tapi pilihan kerangka kerja adalah keputusan penting untuk masa depan proyek Anda sendiri, dan Anda tidak harus terburu-buru.

Skillbox merekomendasikan:

Source: https://habr.com/ru/post/id420119/


All Articles