Python Betiği İle Eklenti Geliştirme

mustafaakbel

Mustafa AKBEL

Posted on September 2, 2020

Python Betiği İle Eklenti Geliştirme

Liman MYS üzerinde python, bash veya powershell betikleri çalıştırabilmekteyiz.

1.İlk olarak Sistem Ayarları > Eklenti > Yeni yolunu izleyerek eklenti oluşturuyoruz. Yaptığımız işlem bize varsayılan olarak views klasör altında index.php ve functions.php olmak üzere iki dosya oluşturmaktaydı.

Visual Studio Code ile Liman sunucusuna bağlanıp eklenti dosyalarına erişebiliyoruz. Bu konu hakkında Mert Çelen'in yazdığı yazıya buradan ulaşabilirsiniz.

Alt Text

2.Scripts klasörü içine liman sunucusunda liman user'ı ile aşağıdaki kod yardımıyla devtopython adında python dosyası oluşturulur.

touch /liman/extensions/devtopython/scripts/devtopython.py

Veya Visual Studio Code arayüzü ile scripts klasörüne sağ tıklayıp new file diyerek oluşturabilirsiniz.

3.index.blade.php dosyasına gerekli kod parçacıkları yazılır. Aşağıdan erişebilirsiniz.

<button class="btn btn-primary mb-2" onclick="runScript()">Python scriptini çalıştır</button>
<div id="devtoPython"></div>

<script>
    function runScript(){
        var form = new FormData();
        request("{{API('runPythonScript')}}", form, function(response) {
            message = JSON.parse(response)["message"];
            $('#devtoPython').html(message);
        }, function(error) {
            $('#devtoPython').html("Hata oluştu");
        });
    }
</script>

Enter fullscreen mode Exit fullscreen mode

Butona tıklandığında anda javascript fonksiyonu çalışıp backend de runPythonScript php fonksiyonuna gidecek.

4.functions.php sayfasının içeriği ise aşağıdaki gibidir.

<?php 

    function index(){
        return view('index');
    }

    function runPythonScript(){
        $output = runScript("devtopython.py","",false);
        return respond($output,200);
    }

?>
Enter fullscreen mode Exit fullscreen mode

runScript helperı Liman üzerinden betik çalıştırmamızı sağlamaktadır. 3 parametre almaktadır. Birinci parametre betik adı, ikinci parametre betiğe gönderilmek istenen parametrelerdir, üçüncüsü ise betiğin sudo veya normal çalışacağını belirtmektedir. Üçüncü parametre false verilir ise normal, true verilir ise betik sudo ile çalıştırılmaktadır.

5.devtopython.py içerisinde istediğiniz python komutlarını kullanabilirsiniz. Örnek amaçlı kullanılan betiğin içeriği aşağıdadır.

#!/usr/bin/python3
print("Merhaba Dünya !!")
Enter fullscreen mode Exit fullscreen mode

Eklentinin görsel çıktıları aşağıdadır.
Butona basılmadan önceki görsel ;

Alt Text

Butona basıldıktan sonraki görsel ;

Alt Text

Eklentinin koduna buradan ulaşabilirsiniz.

💖 💪 🙅 🚩
mustafaakbel
Mustafa AKBEL

Posted on September 2, 2020

Join Our Newsletter. No Spam, Only the good stuff.

Sign up to receive the latest update from our blog.

Related

Python Betiği İle Eklenti Geliştirme
limanmys Python Betiği İle Eklenti Geliştirme

September 2, 2020