Dynamic Web Programming: python pg and cgi modules Mansi M. Kasliwal Carnegie Institution for...
-
Upload
stewart-george -
Category
Documents
-
view
221 -
download
2
Transcript of Dynamic Web Programming: python pg and cgi modules Mansi M. Kasliwal Carnegie Institution for...
Dynamic Web Programming:python pg and cgi modulesMansi M. KasliwalCarnegie Institution for ScienceCalifornia Institute of Technology
Database
• Logical tables to organize large amounts of data• Easy-to-manage: add/subtract/modify• Structure facilitating super-fast complex queries
• Python “pg” module• connect• query, insert, delete, update
(Note: psycopg2 module for cursor handling in large databases, copy command etc.)
2
An Example Database Schemacreatedb tutorial
psql –d tutorial CREATE SEQUENCE people_id_seq;
CREATE TABLE people ( id bigint NOT NULL default nextval(‘people_id_seq’),firstname text, lastname text );
CREATE TABLE education ( people_id bigint, subject text, degree text, college text,
year int );
3
Example pg commandsimport pg
#Connect to Databasedb = pg.connect(dbname=‘tutorial’, host=‘localhost’, user=‘mmk’)
#Add Entriesdb.insert(people, [firstname=‘mansi’, lastname=‘kasliwal’])delete(table, [d,] [key = val, ...])update(table, [d,] [key = val, ...])
#Example Query Joining Two Tablesresult = db.query(“SELECT * from people, education WHERE people.id = education.people_id AND subject=‘astronomy’;”)
4
Dynamic Web Programming• Generate nimble webpages on-the-fly that push and pull
data to and fro a database• Python “cgi” module is easy-to-use• URL: GET method
• e.g. tutorial.cgi?firstname=‘mansi’&lastname=‘kasliwal’• FORM: POST method
• Radio buttons or check boxes• Drop down menu• File upload/download• Blank Text Area
• Retrieving cookies• e.g. os.environ['REMOTE_USER']
(Note: wsgi is more portable than cgi since it unifies the application programming interface; wsgi = Web Server Gateway Interface)
5
Example Form
6
#!/usr/bin/python # Import modules for CGI handling import cgi, cgitb
# Create instance of FieldStorage form =cgi.FieldStorage()
# Put up a form<form action="/cgi-bin/tutorial.cgi" method="post"> First Name: <input type="text" name="firstname"> <br /> Last Name: <input type="text" name="lastname" /><input type="submit" value="Submit" /> </form>
# Get data from fields first_name = form.getvalue('firstname') last_name = form.getvalue('lastname')
#Insert entry into databasedb.insert(people, [firstname=‘%s’, lastname=‘%s’] %(first_name, last_name))
Check box / Dropdown Menu
<form action="/cgi-bin/checkbox.cgi" method="POST" target="_blank"> <input type="checkbox" name="maths" value="on" /> Maths <input type="checkbox" name="physics" value="on" /> Physics <input type="submit" value="Select Subject" /> </form>
7
<form action="/cgi-bin/dropdown.cgi" method="post" target="_blank"> <select name="dropdown"> <option value="Maths" selected>Maths</option> <option value="Physics">Physics</option> </select> <input type="submit" value="Submit"/> </form>
Applications in Time Domain
1. A Treasures Portal2. Follow-up Marshals
a. Extragalactic Transientsb. Milky Way Variablesc. Solar Systemd. Target-of-opportunity
8
iPTF Treasures Portal
9
Developers: MMK, Yi Cao
The iPTF Treasure Chest
10
A versatile portal with query derivatives:1. ROBOTIC treasurer2. SYSTEMATIC daily monitoring 3. YOUNG supernovae4. GAP transients in the local universe 5. SLOWLY rising supernovae6. LARGE amplitude stars7. Fermi/Icecube target of opportunity fields triggers8. M31/M33 transients and variables9. FAST Transients10. NUCLEAR Transients
Developers: MMK, Yi Cao, Iair Arcavi
11
Developers: Robert Quimby, MMK, Iair Arcavi
12
13
Light Curves: Key to Variable Stars
14
Developers: David Levitan
Automatically match with SDSS, WISE, SimbadLinks to NED, CRTS, LINEAR, etc. Periods
15
Period search
16
Movement: Key to Asteroids
17
Developer: Adam Waszczak
Targ
et-o
f-O
ppor
tuni
ty M
arsh
al
18Developer: Leo Singer
Questions?
19