PyScript — Anaconda ile Browser üzerinde HTML + Python
Browser üzerinde HTML ve Javascript kullanmak zaten yıllardır olan ve her zaman kullandığımız bir şeydi. Ancak Anaconda’nın yeni çıkardığı Javascript Frameworkü olan PyScript ile HTML içerisinde aynen Javascript gibi Python kodları çalıştırabiliyoruz.
PyScript ile python kodlarını klasik websitelerine yerleştirmek ise Javascript yazmak kadar basit. Yalnızca PyScript javascript ve css dosyalarını websiteye yerleştirmek yeterli.
Python environment dahi eklenebilmekte ve NumPy, pandas, scikit gibi kütüphanelerle çalışılabilmekte!
Ancak örnek bir uygulama yaptığımda pek hızlı gelmedi, WebAssembly’e dönüştürme tarafında biraz hantallık hissettim.
Sayfa yüklenirken yazılan python kodları arka tarafta çalıştırılıp yükleniyor, gayet mantıklı ama ne kadar efektif tartışılır.
Benim asıl merak ettiğim acaba bu tarafta yazılan python kodlarına code injection yapıldığı zaman ne olur? Şu anda çok inceleme fırsatım yok ancak değişik şeyler çıkabilir diye düşünüyorum.
Aşağıda yaptığım örnek ve çıktısı mevcut.
<html>
<head>
<link rel="stylesheet" href="https://pyscript.net/alpha/pyscript.css" />
<script defer src="https://pyscript.net/alpha/pyscript.js"></script>
<py-env>
- numpy
- matplotlib
</py-env>
</head> <body style="text-align: center; background-color: grey; color:greenyellow;">
<h1>Onurgule PyScript Test</h1>
<div id="dirs" style="margin-top:25px;"></div>
<py-script output="dirs">
import matplotlib.pyplot as plt
import numpy as np
import osprint(os.listdir('/'))
print(os.listdir('/home')) </py-script>
</body>
</html>
Burada birkaç dependency importu ve örnek script kullanımı mevcuttur.
Çalıştırdığımda ise öncelikle bu şekilde boş görünmekte:
Yaklaşık 10 saniye sonra kodlar yorumlanıp print edilmekte:
Umarım bir sorun olmaz da her kullanıcının environmenti farklı bir yerde olur, aksi halini düşünemiyorum :)
Ayrıca güvenli kod yazmakta çok tecrübesi olmayan junior developerlar da dikkatli olması gerek, henüz tam incelemesemde kullanıcının kullandığı environmenttaki dosyalara güvenmemeli, buraya kritik dosyalar yüklenmemeli diye düşünmekteyim.
Özet olarak şu anda Javascriptin hızına yetişemese de Python librarylerini browser üzerinden kullanıp kullanıcılara gösterebilmek heyecan verici.
Kaynak: https://anaconda.cloud/pyscript-python-in-the-browser