- PyScript adalah platform open source yang memungkinkan kode Python dijalankan di browser, sehingga halaman web itu sendiri bisa menjadi lingkungan eksekusi Python
- Dengan menggabungkan universalitas web dan ekosistem Python, PyScript menonjolkan bahwa Python dapat dijalankan di mana pun ada browser
- Karena aplikasi berjalan di browser tanpa instalasi yang rumit, pengguna dapat membuat aplikasi berbasis web dengan sintaks Python yang mudah dipelajari
- Kode dijalankan di browser pengguna sehingga mengurangi beban infrastruktur yang mahal, dan hasilnya dapat dibagikan sebagai URL di web
- Menargetkan pemula maupun pengguna tingkat lanjut, dengan karakteristik utama: kemudahan, daya ekspresi, skalabilitas, kemudahan berbagi, universalitas, keamanan, dan kekuatan
Lingkungan eksekusi Python di dalam browser
- PyScript adalah platform open source untuk menjalankan Python di browser
- Salah satu contohnya adalah menjalankan kode Python di dalam HTML menggunakan
script type="py"- Kode contoh menjalankan
print('You can!')di dalam dokumen browser
- Kode contoh menjalankan
- Arah utama PyScript adalah menggabungkan dua ekosistem teknologi: web dan Python
- Web adalah platform komputasi yang universal di seluruh dunia
- Python adalah salah satu bahasa pemrograman paling populer di dunia
- Hasilnya, pesan utama yang ditonjolkan adalah Python dapat dijalankan di mana pun ada browser
Cara memulai dan karakteristik platform
- Dapat dicoba dengan mudah dan gratis di PyScript.com
- Dokumentasi ditujukan untuk pemula maupun pengguna tingkat lanjut
- Di materi komunitas, pengguna dapat melihat apa saja yang bisa dibuat dengan PyScript
- Pengguna dapat terhubung dengan pengguna PyScript lain melalui Discord
- Karakteristik yang ditonjolkan PyScript adalah sebagai berikut
- Easy: aplikasi berjalan di browser tanpa instalasi yang rumit
- Expressive: pengguna dapat membuat aplikasi dengan bahasa yang kuat, populer, dan mudah dipelajari seperti Python
- Scalable: kode dijalankan di browser pengguna sehingga tidak membutuhkan infrastruktur yang mahal
- Shareable: aplikasi dapat dibagikan sebagai URL di web
- Universal: kode berjalan di mana pun browser dapat dijalankan
- Secure: berjalan di platform komputasi yang telah teruji, yaitu browser
- Powerful: memanfaatkan keunggulan web dan Python secara bersamaan
1 komentar
Komentar Hacker News
Jika penasaran dengan contoh penggunaannya, dashboard Panel statistik kejahatan Dallas bisa dilihat di sini: https://crimede-coder.com/graphs/Dallas_Dashboard
Startup memakan waktu sekitar 1 menit, termasuk instalasi beberapa library Python dan pemuatan dataset eksternal 5MB. Setelah tampil, responsnya cukup baik dan berjalan dengan baik juga di iPhone
Banyak organisasi yang bekerja sama dengan saya memakai versi gratis Tableau dan memperbarui data secara manual, karena versi gratis tidak mengizinkan koneksi langsung ke penyimpanan data. Ini adalah alternatif gratis, dan saya menyiapkan GitHub Actions untuk membuat file CSV terkompresi agar bisa diimpor oleh lingkungan tersebut
Saya kira perlu jauh lebih lama dari 8 detik untuk mem-bootstrap Python hingga bisa menjalankan aplikasi Panel di Safari pada iPad. Shift refresh memakan waktu sekitar 6 detik
Saya juga penasaran apakah masalahnya adalah butuh Python untuk analisis data, tetapi tidak ingin menjalankannya di sisi server karena biaya server
Bahkan setelah melihat homepage dan membaca dokumentasinya, saya masih kurang paham ini sebenarnya apa
Setelah saya coba sedikit sendiri, saya bisa membuatnya menampilkan “Hello World” di sebuah website. Ini tampaknya seperti skrip yang mencari tag script dengan
type="py"lalu mentranspilasi lewat Pyodide dari Python ke JavaScriptNamun demo di homepage adalah REPL dan judulnya menyebut “platform”, jadi tetap membingungkan
jstampaknya dipetakan ke objekwindowyang sebenarnya dan mungkin merupakan API untuk memanggil metode DOM lewat semacam objek ProxySaya tadinya berharap bisa menjalankan Python dari konsol browser
Apa bedanya ini dengan Pyodide? https://pyodide.org/en/stable/
PyScript bisa memakai Pyodide atau MicroPython, dan MicroPython sendiri sebenarnya cukup kecil. Di atas runtime itu, PyScript bukan sekadar menjalankan kode Python, tetapi juga menyediakan fitur kemudahan dan peningkatan kualitas hidup agar Python benar-benar bisa dipakai untuk pemrograman web
Belakangan ini saya cukup mendalami penggunaan PyScript untuk menjalankan aplikasi CLI Python di browser
Rasanya sangat hacky sepanjang proses, terutama ketika dependency mulai terlibat. Saya tidak bisa memakai Pydantic 2.x sehingga harus membuat kelas wrapper sebagai solusi, dan walau saya ingin menaruh semua logika di file Python, ada fitur yang hilang sehingga sebagian tetap harus ditaruh di JavaScript
Mungkin cocok jika Anda ingin menambahkan UI sederhana dan logika UI kustom di atas kode Python, tetapi Streamlit atau Gradio mungkin lebih pas
Repositori GitHub: https://github.com/data-catering/data-contract-playground
Website: https://data-catering.github.io/data-contract-playground/
Sulit menemukan use case nyata. Jika ingin menjalankan model machine learning, Anda bisa membangunnya dengan ONNX: https://onnxruntime.ai/docs/tutorials/web/
Saya penasaran apakah ini efisien untuk membuat aplikasi berbasis browser alih-alih memakai JS/TS
Akan bagus kalau bisa menulis skrip di Firefox untuk mengendalikan browser. Maksudnya, evaluasi bisa dijalankan pada tahap mana pun yang diinginkan, seperti saat GET, setelah semua GET selesai, atau sebelum dan sesudah evaluasi JavaScript
Penasaran apakah ada alat yang bisa melakukan hal seperti ini, dan juga memberi akses ke semua kemampuan Python dari host
Bukankah ini konsep yang sama seperti Brython? BRowser pYTHON: https://brython.info/
https://github.com/brython-dev/brython
https://yasoob.me/2019/05/22/running-python-in-the-browser/
Sedikit promosi, saya membuat framework frontend reaktif yang lebih opinionated menggunakan PyScript. Sedikit terinspirasi oleh Vue.js: https://puepy.dev
Dulu saya pernah membuat renderer Markdown dengan ini. Kode sumber yang sangat sederhana bisa dilihat di sini: https://pyscript.com/@stuartmaxwell/markdown-previewer-v2/la...
Aplikasinya mungkin tidak berjalan dengan baik di ponsel, tetapi seharusnya cukup oke di desktop. Saya memakai kode ini di aplikasi blog yang sedang saya tulis dengan Django
Untuk konfigurasi WASM apa pun, pada akhirnya sangat menjengkelkan bahwa ada batasan besar karena CORS, sehingga tidak bisa memanggil banyak API atau melakukan scraping situs
Tentu saja CORS penting untuk mencegah hal-hal seperti XSS, tetapi akan bagus jika ada cara lain selain menyiapkan proxy yang menghapus CORS. Kalau begitu, yang tersisa adalah IP yang lebih mungkin diblokir karena bukan IP residensial