programs can automate the construction process when cgi scripts are invoked with explicit input parameters this wayit' not too difficult to see their similarity to functionsalbeit ones that live remotely on the net passing data to scripts in urls is similar to keyword arguments in python functionsboth operationally and syntactically in factsome advanced web frameworks such as zope make the relationship between urls and python function calls even more literalurls become more direct calls to python functions incidentallyif you clear out the name input field in the form input page ( make it emptyand press submitthe user name field becomes empty more accuratelythe browser may not send this field along with the form data at alleven though it is listed in the form layout html the cgi script detects such missing field with the dictionary in expression and produces the page captured in figure - in response figure - an empty name field producing an error page in generalcgi scripts must check to see whether any inputs are missingpartly because they might not be typed by user in the formbut also because there may be no form at all--input fields might not be tacked onto the end of an explicitly typed or constructed get-style url for instanceif we type the script' url without any parameters at all--by omitting the text from the and beyondand visiting tutor py with an explicitly entered url--we get this same error response page since we can invoke any cgi through form or urlscripts must anticipate both scenarios testing outside browsers with the module urllib request once we understand how to send inputs to forms as query string parameters at the end of urls like thisthe python urllib request module we met in and becomes even more useful recall that this module allows us to fetch the reply generated climbing the cgi learning curve