Basic Flask Web Server Setup In Python

TODO: Fix the formatting of this post that got busted during the move to nextjs

Code
### Basic Hello, World

``python
#!/usr/bin/env python

from flask import Flask

app = Flask(__name__)

@app.route('/')
def index():
    return "Hello, World"

app.run(port=8000, host='0.0.0.0')
``

--------------------------------------------------------------------------------

TODO: Verify this works as expected

### Using query strings

``python
from flask import Flask
from flask import request


app = Flask(__name__)

@app.route('/')
def index(name="Example"):
    name = request.args.get('name', name)
    return "Hello {}".format(name)

app.run(port=8000, host='0.0.0.0')
``

---


The `from flask import request` sets up a global object that allows for grabbing query strings.


---

Routes are setup with decorators. For example:

    @app.route('/')

Views can have more than one route. And they can be used to create variables.

    @app.route('/')
    @app.route('/<name>')


---

For cleaned up URLs, this would get us:

    from flask import Flask

    app = Flask(__name__)

    @app.route('/')
    @app.route('/<name>')
    def index(name="World"):
        return "Hello {}".format(name)

    app.run(debug=True, port=8000, host='0.0.0.0')


---

Multiple routes with types


    from flask import Flask

    app = Flask(__name__)

    @app.route('/multiply')
    @app.route('/multiply/<int:val1>/<int:val2>')
    @app.route('/multiply/<float:val1>/<int:val2>')
    @app.route('/multiply/<float:val1>/<float:val2>')
    @app.route('/multiply/<int:val1>/<float:val2>')
    def multiply(val1=5, val2=5):
        return str(val1 * val2)