8000 Merge pull request #31 from anaconda/toga-spa · robinboot/pyscript@cdc1cc4 · GitHub
[go: up one dir, main page]

Skip to content

Commit cdc1cc4

Browse files
authored
Merge pull request pyscript#31 from anaconda/toga-spa
Add a Toga SPA rendering demo
2 parents e409f5c + 481553c commit cdc1cc4

17 files changed

+60
-3
lines changed

pyscriptjs/examples/index.html

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,9 @@ <h2 class="text-2xl font-bold text-blue-600"><a href="./panel.html" target=”_b
4242
WARNING: This examples takes a little longer to load. So be patient :)
4343
</p>
4444

45+
<h2 class="text-2xl font-bold text-blue-600"><a href="./toga/freedom.html" target=”_blank”>Freedom Units!</a></h2>
46+
<p>A Toga application (a Fahrenheit to Celsius converter), rendered as a Single Page App</p>
47+
4548
<h2 class="text-2xl font-bold text-blue-600"><a href="./d3.html" target=”_blank”>Simple d3 visualization</a></h2>
4649
<p>Minimal d3 demo demonstrating how to create a visualization</p>
4750

pyscriptjs/examples/toga/freedom.html

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
<!doctype html>
2+
<html lang="en">
3+
<head>
4+
<meta charset="utf-8">
5+
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
6+
<link rel="icon" type="image/png" href="./static/logo-32.png"/>
7+
8+
<!-- Bootstrap CSS -->
9+
<link rel="stylesheet"
10+
href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.0/css/bootstrap.min.css"
11+
integrity="sha384-9aIt2nRpC12Uk9gS9baDl411NQApFmC26EwAOH8WgZl5MYYxFfc+NcPb1dKGj7Sk"
12+
crossorigin="anonymous">
13+
<link rel="stylesheet" href="./static/toga.css">
14+
15+
<script defer src="../build/pyscript.js"></script>
16+
17+
<title>Loading...</title>
18+
</head>
19+
<body>
20+
<div id="toga-placeholder">Loading...</div>
21+
22+
<!-- jQuery first, then Popper.js, then Bootstrap JS -->
23+
<script src="https://code.jquery.com/jquery-3.5.1.slim.min.js"
24+
integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj"
25+
crossorigin="anonymous">
26+
</script>
27+
<script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.0/dist/umd/popper.min.js"
28+
integrity="sha384-Q6E9RHvbIyZFJoft+2mJbHaEWldlvI9IOYy5n3zV9zzTtmI3UksdQRVvoxMfooAo"
29+
crossorigin="anonymous">
30+
</script>
31+
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.5.0/js/bootstrap.min.js"
32+
integrity="sha384-OgVRvuATP1z7JjHLkuOU7Xw704+h835Lr+6QL9UvYjZE3Ipu6Tp75j7Bh/kR0JKI"
33+
crossorigin="anonymous">
34+
</script>
35+
</body>
36+
<py-script>
37+
import asyncio
38+
import micropip
39+
40+
await micropip.install([
41+
'./static/wheels/travertino-0.1.3-py3-none-any.whl',
42+
'./static/wheels/toga_core-0.3.0.dev33-py3-none-any.whl',
43+
'./static/wheels/toga_web-0.3.0.dev33-py3-none-any.whl',
44+
'./static/wheels/freedom-0.0.1-py3-none-any.whl',
45+
])
46+
47+
from toga_web.dom import handle as dom_handle
48+
49+from freedom.__main__ import main
50+
51+
app = main().main_loop(spa=True)
52+
53+
</py-script>
54+
</html>
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
#!/bin/sh
22

3-
mkdir -p ../server/static/wheels
3+
mkdir -p ../static/wheels
44
cd src
55
unzip ../base-wheel.zip
6-
zip ../../server/static/wheels/freedom-0.0.1-py3-none-any.whl -r freedom*
6+
zip ../../static/wheels/freedom-0.0.1-py3-none-any.whl -r freedom*
77
rm -rf freedom-0.0.1.dist-info

pyscriptjs/examples/toga/server/demo.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
from freedom import app as freedom
66

7-
app = Flask(__name__)
7+
app = Flask(__name__, static_folder='../static')
88

99
app.add_url_rule('/', view_func=TogaApp.as_view("foo", app_module=freedom))
1010

Binary file not shown.
Binary file not shown.
Binary file not shown.

0 commit comments

Comments
 (0)
0