Getting Started
- Running Lona From A Script
- Starting A Lona Project From The Project Template
- Writing a view
- Adding HTML and CSS
Running Lona From A Script
For microservices or small prototypes a Lona app can be run using a single python script.
$ pip install lona
from datetime import datetime
from lona.html import HTML, H1, Div
from lona import LonaApp, LonaView
app = LonaApp(__file__)
@app.route('/')
class ClockView(LonaView):
def handle_request(self, request):
timestamp = Div()
html = HTML(
H1('Clock'),
timestamp,
)
while True:
timestamp.set_text(str(datetime.now()))
self.show(html)
self.sleep(1)
if __name__ == '__main__':
app.run(port=8080)
More information: Lona Scripts
Starting A Lona Project From The Project Template
The easiest way to start a Lona project is to use the lona-project-template.
$ git clone https://github.com/lona-web-org/lona-project-template
$ cd lona-project-template
$ make server
The GNU make target server sets up a Python virtualenv and starts lona-server. When you open http://localhost:8080 with your browser, you should see Hello World.
Writing a view
In this section we will create an interactive view that counts to ten.
# lona_project/views/count_to_ten.py
from lona.html import HTML, H1, P, Div
from lona import LonaView
class CountToTen(LonaView):
def handle_request(self, request):
counter = Div('0')
html = HTML(
H1('Count To Ten'),
P('Counter: ', counter),
)
for i in range(1, 11):
counter.set_text(i)
self.show(html)
self.sleep(1)
We need to add a route to lona_project/routes.py that points to our new view.
# lona_project/routes.py
from lona import Route
routes = [
Route('/count-to-ten/', 'views/count_to_ten.py::CountToTen'),
Route('/', 'views/home.py::HomeView'),
]
The new view should now be accessible on http://localhost:8080/count-to-ten/.
More information: Views
Adding HTML and CSS
The overall layout of your page gets defined by lona_project/templates/lona/frontend.html. Here you can add a banner, navigation, a footer and so on. By default the frontend template loads lona_project/static/style.css. You can extend this file or include more CSS and Javascript stored in lona_project/static.