#!/usr/bin/env python3
import os
from bottle import Bottle,route, run, template, static_file, request,redirect, response,get, post
global app
app=Bottle()
PORT=8080
DOCUMENTROOT="./htdocs"
def start_server():
run(app , host='0.0.0.0', port=PORT, reloader=True)
def runScript(filename):
code=open(DOCUMENTROOT+os.sep+filename).read()
exec(code)
global html
return html
app.route("/", ['GET', 'POST'], runScript)
@app.route("/")
def home():
redirect("/index.py")
start_server()
LE pagine (script Python) devono essere messe nella cartella specificata dalla variabile **DOCUMENTROOT** . E devono esplicitare la variabile **html** come global. Ecco come:
**page.py**
global html
html='''
Python like PHP pagina due
Python like PHP - Pagina
Page
'''
====== Lavorare con i form ======
**form.py**
global html
if request.forms.get('txt') is not None:
ret=request.forms.get('txt')
else:
ret=''
html='''
Python like PHP pagina due
Form {ret}
'''
html=html.format(ret=ret)
====== E se volessimo creare delle rotte statiche senza spegnere il server? ======
Per fare questo ci avvaliamo di uno script python (.py) messo sempre nella cartella htdocs (preferenza del nostro script). Dichiariamo la variabile app come global sia su main.py che sul nostro script per aggiornare le rotte.
**refresh-routes.py**
global app
def fabio():
return("Fabio ciao
")
def fml():
return("FML ciao
")
app.route("/fabio", ['GET', 'POST'], fabio)
app.route("/fml", ['GET', 'POST'], fml)
Le rotte verranno impostate su questo script. Per renderle operative basta richiamare lo script stesso dal browser . Verranno sovrascitte tutte le rotte precedenti e aggiunte quelle nuove. Una volta richiamato lo script (per esempio: **http://localhost:8080/refresh-routes.py**) le rotte saranno disponibili per tutti gli utenti che si collegheranno al server.