In the next few posts I’m planning to show you all all the CRUD (Create, Read, Update, Delete ) concepts, and this one happens to be the create aspect.

I’m more than likely going to be changing this form as I need to, but this form has all the necessary qualities to create new providers and add them to the database.
By default here is what you’ll see:

But when you add a name in the form text boxes and click the “Submit” button, you’ll see this:

Now the new values are ready to be added to the database table.
That will be in my next post.
Here is all the code:
#!/usr/bin/python
print "Content-type: text/html\n\n"
print "<html>"
print "<head>"
print "<title>Providers</title>"
print "</head>"
print "<body>"
import MySQLdb
import os
# Import modules for CGI handling
import cgi, cgitb
def init():
#read the query params
params = os.environ.get('QUERY_STRING')
findthis="="
#find if there is an equal sign in the query param
#use int to convert the variable to a number from a text value
intEquals = int(params.find(findthis))
#test for queryparam or first time you have arrived
if intEquals > -1:
#RECORD ALREADY EXISTS IN THE TABLE
#slice notation like substr
arg= params[3:]
print 'show clicked record on form'
print '<br>'
print '<br>'
sql = "SELECT * FROM tblProviders WHERE prv_id=" + arg
print sql
print '<br>'
print '<br>'
showtable()
else:
#CREATE THE NEW RECORD
#get the field values
form = cgi.FieldStorage()
# Get data from fields
if form.getvalue('fname'):
fname = form.getvalue('fname')
else:
fname = "Not set"
if form.getvalue('city'):
city = form.getvalue('city')
else:
city = "Not set"
'''
# Get data from fields
fname = form.getvalue('fname')
city = form.getvalue('city')
print 'fname = ' + fname + '<br>'
print 'city = ' + city + '<br>'
'''
#insert the contents of the form into the table
print "<h2>Enter New Provider:</h2>"
print '<strong>fname</strong> = ' + fname + '<br>'
print '<strong>city</strong> = ' + city + '<br>'
print "<form action = 'providers_add_form_values.py' method = 'post'>"
print "<table width='100%' border='0px' bgcolor=lightgreen>"
print "<tr>"
print "<td><strong>First Name:</strong></td>"
print "<td><input type = 'text' name = 'fname' value='" + fname + "'></td>"
print "</tr>"
print "<tr>"
print "<td><strong>City:</strong></td>"
print "<td><input type = 'text' name = 'city' value='" + city + "'></td>"
print "</tr>"
print "<tr>"
print "<td><input type = 'submit' value = 'Submit' /></td>"
print "</tr>"
print "</table>"
print "</form>"
showtable()
def showtable():
conn = MySQLdb.connect('localhost', 'username','pwd', 'erikloeb_med')
cursor = conn.cursor()
sql="SELECT * FROM tblProviders"
cursor.execute(sql)
# Get the number of rows in the result set
numrows = cursor.rowcount
print "<table width='100%' border='1px'>"
print "<th>ID</th><th>First Name</th><th>City</th>"
# Get and display all the rows
for row in cursor:
id = row[0]
print '<tr>'
print '<td>'
print "<a href='providers_add_form_values.py?id=" + str(id) + "'>" + str(id) + "</a>" #need to convert the index to a string
print '</td>'
print '<td>' + row[1] + '</td>'
print '<td>' + row[2] + '</td>'
print '</tr>'
print '</table>';
# Close the connection
conn.close()
#start here:
init()
print "</body>"
print "</html>"
Here it is in action:
http://pythoninhtmlexamples.com/files/med/providers_add_form_values.py
Watch how it’s done: