「Pythonforbrowser」の新しいリリースがリリースされました。Brython3.9に会ってください



Brython Pythonコード(スクリーンショット-バージョン3.8.8)



Brython Pythonプロジェクトの開発者がいるリリース新しいリリース、 Brython 3.9。プロジェクト自体は「ブラウザ用Python」として位置付けられています。これはPython3に基づいており、ブラウザー側で実行され、JavaScriptの代わりにPythonを使用してWebスクリプトを開発します。



プロジェクトコードはPythonで記述され、BSDライセンスの下で配布されます。新しいリリースはPython3.9と互換性があり、さらに標準ライブラリが更新されています。



JSの代わりにPythonを使用してクライアント側サイトのロジックを定義するには、Web開発者はbrython.jsとbrython_stdlib.jsの2つのライブラリを含める必要があります。ページにPythonコードを含めるには、mimeタイプのtext / pythonのスクリプトタグ使用します。



Brythonの側からは、ページへのコードの埋め込みと外部スクリプトのロードの両方が許可されています。例:



<script type="text/python" src="test.py">


DOM要素とイベントへのフルアクセスはスクリプトから提供されます。 Python標準ライブラリへのアクセスに加えて、jQuery、D3、Highcharts、RaphaelなどのDOMおよびJavaScriptライブラリを操作するための専用ライブラリがあります。



jQuery、D3、Highcharts、RaphaelなどのJavaScriptライブラリによるCSSフレームワークの使用をサポートします。



Pythonブロックは、ページがロードされた後にBrythonエンジンによって実行されるコードの事前コンパイルを通じてスクリプトブロックから実行されます。コンパイルは、brython()関数を呼び出すことによって開始されbody onload="brython()"ます。たとえば、を追加します。



Pythonコードに基づいて、JS表現が形成され、ブラウザーの標準JavaScriptエンジンによって実行されます。



パフォーマンスに関しては、埋め込みPythonスクリプトのほとんどの操作はCpythonのパフォーマンスに近いものです。遅延が発生するのは、コンパイルフェーズ中のみです。ただし、標準ライブラリのロードを高速化するために使用されるプリコンパイルされたJavaScriptコードによって、遅延をなくすことができます。



<script type="text/python">
 
import time
import math
 
from browser import document
import browser.timer
 
content = document["content"]
 
...
 
canvas = content.select_one(".clock")
 
if hasattr(canvas, 'getContext'):
    ctx = canvas.getContext("2d")
 
    browser.timer.set_interval(set_clock, 100)
    show_hours()
else:
    content.select_one('.navig_zone').html = "canvas is not supported"
 
</script>


Brythonの実行の詳細



「Pythonforthe Browser」で、JSコードのようなPythonコードの変換と実行の両方を行えるようにするには、ドキュメントの本文が読み込まれたときにBrythonを呼び出す必要があります。



<body onload="brython()">


この場合、タグはタイプtext / pythonのスクリプトタグを探し、コードを実行します。Webでの作業にAPIを使用するために、Brython開発者は、Pythonで他のモジュールをインポートするのと同様に、APIをインポートするという単純なソリューションを実装しました。



from browser import document, html, window


Brythonはすべてを独自に処理するため、追加のコマンドを実行する必要はありません。



重要なポイント-Brythonを使用するには、少なくとも基本的なレベルのJavaScriptの経験が必要です。これがなければ、それを理解するのは非常に難しいでしょう。






All Articles