Since we’re getting real-time data from our weather API, let’s update our weather graph regularly to see how the temperature is changing during the day.
Go to ‘Design’ view in the Form Editor and drop a ‘Timer’ component onto the page.
We can set the
interval property of our timer - that’s how often our Timer will ‘tick’. We’ll then call our
get_weather_data function each time the Timer ‘ticks’.
The default interval is 0.5 seconds – let’s slow that down to 2 seconds. Click on the Timer, and in the Properties panel on the right, change the interval from 0.5 to 2 seconds.
Next, we want to call our
get_weather_data server function each time our Timer ticks.
We’ll use Events for this.
Set up an event handler
Anvil components can raise events. For example, when a Timer ticks, it raises the ‘tick’ event.
Click on your Timer, and scroll to the bottom of the Properties Panel. You’ll see a list of events for the Timer.
Click the blue arrows next to ‘tick’.
You’ll see a
timer_1_tick method. Edit it to look like this:
def timer_1_tick(self, **event_args): """This method is called every [interval] seconds. Does not trigger if [interval] is 0.""" with anvil.server.no_loading_indicator: self.build_weather_graph()
Run your app
Click the Run button, and you’ll see that your temperature graph is displaying real-time data from OpenWeatherMap’s REST API. Fabulous!
We’ve built a dashboard with data from four different sources and displayed on the web, all with nothing but Python.