I enjoy rock climbing and wanted a way to quickly view detailed 3-day forecasts for outdoor climbing spots I’m interested in going to.
The homepage is allows you to quickly select a location and date range you’re interested in and then click a button to view the weather report full screen on a new page. In the center of the report are quick summaries for each day. On the top and bottom are detailed graphs of temperature, precipitation, and cloud coverage.
The application consists of an HTML file and two Python files. The HTML file defines the webpage’s structure and appearance. The Python files execute the thinking/proccessing/logic of the web app, using a framework called Flask.
First, Flask renders the HTML homepage. The user then makes their location and date range choices and submits the HTML form. Flask processes the selections, then the requests library is used to send a request to Dark Sky for the relevant weather data. When the requested weather data is received back from Dark Sky, it is processed and turned into a plot using Matplotlib.
I published the web app on the internet using PythonAnywhere.