https://brython.info/static_doc/en/intro.html?lang=en
https://www.brython.info/static_doc/en/javascript.html
https://www.brython.info/demo.html?lang=en#
https://brython.info/gallery/gallery_en.html
https://github.com/stefanhoelzl/vue.py
https://github.com/andy31lewis/brySVG
https://github.com/brython-dev/brython/wiki/Brython-in-the-wild
https://www.mattkeeter.com/projects/constraints/
伺服器端使用 Flask
from flask import Flask, render_template, request, jsonify
# Initialize the Flask application
app = Flask(__name__)
@app.route('/')
def index():
return render_template('index.html')
@app.route('/add_numbers', methods=['POST'])
def add_numbers():
a = request.form.get('a', 0, type=int)
b = request.form.get('b', 0, type=int)
#return jsonify(result = a+b)
# 必須傳回字串?
return str(a+b)
if __name__ == '__main__':
app.run(debug=True)
客戶端使用 Brython
<!DOCTYPE html>
<html lang="en">
<head>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<link href="//netdna.bootstrapcdn.com/bootstrap/3.0.0/css/bootstrap.min.css" rel="stylesheet">
<script src="http://brython.info/src/brython_dist.js"></script>
</head>
<body onload="brython()">
<script type="text/python">
from browser import document
from browser import ajax
# https://www.brython.info/static_doc/en/ajax.html
def on_complete(req):
document["txt_area"] .clear()
if req.status==200 or req.status==0:
document["txt_area"] <= req.text
else:
document["txt_area"] <= "error "+req.text
def get(url):
# req 從 ajax 模組中的 ajax 類別建立案例, 為一個 ajax 物件
req = ajax.ajax()
# a 為 id="A" 輸入欄位中所輸入的值
a = document['A'].value
# b 為 id="B" 輸入欄位中所輸入的值
b = document['B'].value
# ajax 物件中的 bind 方法, 第一個輸入變數為 evt, 'complete' 表示 ajax 從伺服器取值完成後, 執行 on_complete 函式
req.bind('complete', on_complete)
req.open('POST', url, True)
req.set_header('content-type','application/x-www-form-urlencoded')
req.send({"a": a, "b":b})
# 使用者按下 id="calculate" 按鈕, 將會執行上述 get("/add_numbers") 函式
document['calculate'].bind('click',lambda ev:get('/add_numbers'))
</script>
<div class="container">
<div class="header">
<h3 class="text-muted">Brython ajax example</h3>
</div>
<div>
<input type="text" id="A" size="5" name="a"> +
<input type="text" id ="B" size="5" name="b"> =
<div id="txt_area"></div>
<p><button id="calculate">calculate server side</button>
</form>
</div>
</div>
</body>
</html>
https://code.tutsplus.com/series/manipulating-html5-canvas-using-konva--cms-1242