{
"cells": [
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [
"# Web Programming\n",
"## 10/26/2023\n",
"\n",
"print view\n",
"\n",
"notebook\n"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n"
],
"text/plain": [
""
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [
"
"
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [
"http://bits.csb.pitt.edu/pgammodel/pgam.cgi"
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [
"# Bringing your code to the web\n",
"\n",
"Putting your applications online can make them much more useful."
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n"
],
"text/plain": [
"
"
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [
"# CGI Input\n",
"\n",
"Values are provided to CGI programs through GET and PUT requests, most likely those generated using form data.\n",
"```\n",
"
\n", "\n" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "# The CGI Script" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "#!/usr/bin/env python3\n", "\n", "import cgi\n", "import cgitb\n", "from pysb.integrate import odesolve\n", "import numpy as np\n", "from model import model\n", "\n", "cgitb.enable()\n", "\n", "\n", "print(\"Content-Type: text/html\") # HTML is following\n", "print() # blank line, end of headers\n", "\n", "\n", "print(\"\"\"\n", " \n", "\"\"\")\n", "\n", "form = cgi.FieldStorage()\n", "\n", "time = float(form.getfirst(\"time\",\"1200\"))\n", "model.parameters['INH_0'].value = float(form.getfirst(\"INH_0\", \"500\"))\n", "model.parameters['PG3_0'].value = float(form.getfirst(\"PG3_0\", \" 10000\"))\n", "model.parameters['ADP_0'].value = float(form.getfirst(\"ADP_0\", \" 10000\"))\n", "model.parameters['NADH_0'].value = float(form.getfirst(\"NADH_0\", \"2000\"))\n", "model.parameters['PGM_0'].value = float(form.getfirst(\"PGM_0\", \"14.9\"))\n", "model.parameters['ENO_0'].value = float(form.getfirst(\"ENO_0\", \"2.1\"))\n", "model.parameters['PKM_0'].value = float(form.getfirst(\"PKM_0\", \"0.60\"))\n", "model.parameters['LDH_0'].value = float(form.getfirst(\"LDH_0\", \"0.55\"))\n", "\n", "model.parameters['PGM_PG2kf'].value = float(form.getfirst(\"PGM_PG2kf\", \"0.04312\"))\n", "model.parameters['PGM_PG2kr'].value = float(form.getfirst(\"PGM_PG2kr\", \"0.014426\"))\n", "model.parameters['PGM_PG2kc'].value = float(form.getfirst(\"PGM_PG2kc\", \"0.387171\"))\n", "\n", "model.parameters['ENO_PG3kf'].value = float(form.getfirst(\"ENO_PG3kf\", \"0.011318\"))\n", "model.parameters['ENO_PG3kr'].value = float(form.getfirst(\"ENO_PG3kr\", \"0.013121\"))\n", "model.parameters['ENO_PG3kc'].value = float(form.getfirst(\"ENO_PG3kc\", \"6.706254\"))\n", "\n", "model.parameters['PKM_PEPkf'].value = float(form.getfirst(\"PKM_PEPkf\", \"0.002023\"))\n", "model.parameters['PKM_PEPkr'].value = float(form.getfirst(\"PKM_PEPkr\", \"0.016084\"))\n", "model.parameters['PKM_PEPkc'].value = float(form.getfirst(\"PKM_PEPkc\", \"7.880579\"))\n", "\n", "model.parameters['PKM_ADPkf'].value = float(form.getfirst(\"PKM_ADPkf\", \"0.002023\"))\n", "model.parameters['PKM_ADPkr'].value = float(form.getfirst(\"PKM_ADPkr\", \"0.016084\"))\n", "\n", "model.parameters['LDH_PYRkf'].value = float(form.getfirst(\"LDH_PYRkf\", \"0.029544\"))\n", "model.parameters['LDH_PYRkr'].value = float(form.getfirst(\"LDH_PYRkr\", \"0.009655\"))\n", "model.parameters['LDH_PYRkc'].value = float(form.getfirst(\"LDH_PYRkc\", \"14.775252\"))\n", "\n", "model.parameters['LDH_NADkf'].value = float(form.getfirst(\"LDH_NADkf\", \"0.029544\"))\n", "model.parameters['LDH_NADkr'].value = float(form.getfirst(\"LDH_NADkr\", \"0.009655\"))\n", "\n", "model.parameters['revLDH_PYRkf'].value = float(form.getfirst(\"revLDH_PYRkf\", \"0.00014\"))\n", "model.parameters['revLDH_PYRkr'].value = float(form.getfirst(\"revLDH_PYRkr\", \"20.677645\"))\n", "model.parameters['revLDH_PYRkc'].value = float(form.getfirst(\"revLDH_PYRkc\", \"0.01928\"))\n", "\n", "model.parameters['revLDH_NADkf'].value = float(form.getfirst(\"revLDH_NADkf\", \"0.00014\"))\n", "model.parameters['revLDH_NADkr'].value = float(form.getfirst(\"revLDH_NADkr\", \"20.677645\"))\n", "\n", "\n", "model.parameters['PGM_INHkf'].value = float(form.getfirst(\"PGM_INHkf\", \"0\"))\n", "model.parameters['PGM_INHkr'].value = float(form.getfirst(\"PGM_INHkr\", \"0\"))\n", "\n", "model.parameters['ENO_INHkf'].value = float(form.getfirst(\"ENO_INHkf\", \"0\"))\n", "model.parameters['ENO_INHkr'].value = float(form.getfirst(\"ENO_INHkr\", \"0\"))\n", "\n", "model.parameters['PKM_INHkf'].value = float(form.getfirst(\"PKM_INHkf\", \"0\"))\n", "model.parameters['PKM_INHkr'].value = float(form.getfirst(\"PKM_INHkr\", \"0\"))\n", "\n", "model.parameters['LDH_INHkf'].value = float(form.getfirst(\"LDH_INHkf\", \"0\"))\n", "model.parameters['LDH_INHkr'].value = float(form.getfirst(\"LDH_INHkr\", \"0\"))\n", "\n", "\n", "\n", "t = np.linspace(0,time)\n", "out = odesolve(model, t)\n", "\n", "print(\"\"\"\n", "
\n", "
\n", "\"\"\")\n" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "# Project: MadLibs\n", "\n", "Write a website that does MadLibs.\n", " * Ask the user for a noun, verb, and adjective (or more if you want)\n", " * When they click submit, return story using those words\n", " * Do this with *one* script\n", " \n", "```\n", "ssh userid@python.mscbio2025.net\n", "mkdir public_html\n", "chmod +x .\n", "chmod +rx public_html\n", "cd public_html\n", "touch madlibs.py\n", "chmod +x madlibs.py\n", "nano madlibs.py\n", "```\n", "Visit your website at http://python.mscbio2025.net/~userid/" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "#!/usr/bin/env python3\n", " \n", "import cgi\n", "\n", "print(\"Content-Type: text/html\\n\")\n", "print(\"Hello!\")" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "# Example\n", "\n", "http://python.mscbio2025.net/~dkoes/madlibs.py\n", "\n" ] } ], "metadata": { "celltoolbar": "Slideshow", "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.9.6" } }, "nbformat": 4, "nbformat_minor": 2 }