Checkpoint 4: Submitting Data from Web Forms
Let's create a web form with a text input element to allow the user to specify their given zip code. In the templates directory, add a new HTML file called "weather_form.html" and place inside the following contents:
{% extends "layout.html" %}
{% block content %}
<h2>Weather Form</h2>
<p>Request an hourly forecast for your zip code...</p>
<form action="/weather/forecast" method="POST">
<label>Country Code:</label>
<input type="text" name="country_code" placeholder="US" value="US">
<br>
<label>Zip Code:</label>
<input type="text" name="zip_code" placeholder="20057" value="20057">
<br>
<button>Submit</button>
</form>
{% endblock %}Here we're saying when the user submits the form, we'll send their form inputs via POST request to a route called "/weather/forecast". So let's update our weather routes accordingly:
Based on this routing logic, after we get a weather forecast for the given zip code, we'll send the results to a new page called "weather_forecast.html", so let's create that page now in the "templates" directory, and place inside the following contents:
Here, we are using the Jinja template language to loop through our forecasts and display each.
Restart the server and visit the following routes to test the newly-integrated weather forecasting functionality:
Most importantly, visit http://localhost:5000/weather/form and submit the form to test the app's ability to handle POST requests.
Nice! We now have both a web interface into our app's weather functionality.
Last updated
Was this helpful?