html = '''
'''
# WSGI-klient
def application(environ, start_response):
# zpracování (případného) dotazu
form = parse_qs(environ['QUERY_STRING']) # vrací dict
# získání dat z databáze a jejich převod do podoby HTML-tabulky
if 'name' in form:
print('name =', form)
data_name = form['name'][0]
cursor.execute(f'''
SELECT * FROM izotopy,symboly
WHERE izotopy.element = symboly.symbol AND symboly.name LIKE '%{data_name}%';
''')
else:
data_name = ''
cursor.execute(f'''
SELECT * FROM izotopy,symboly
WHERE izotopy.element = symboly.symbol;
''')
data = ''
for záznam in cursor:
F, A, M, Z, element, J, decay_mode, branch_pct, excitation_energy, Q, T12, abundance, atomic_mass, uncertain_in_mass, S, date, T12s, Z2, symbol, name, origin = záznam
data += f'''
| {F} |
{A} |
{M} |
{Z} |
{element} |
{name} |
{origin} |
{J} |
{decay_mode} |
{branch_pct} |
{excitation_energy} |
{Q} |
{T12} |
{abundance} |
{atomic_mass} |
{uncertain_in_mass} |
{S} |
{date} |
{T12s} |
'''
# vykreslení vyrobené HTML-tabulky
body = bytes(html.format(data_html=data, value_name=data_name), encoding='utf-8')
response_headers = [
("Content-type", "text/html; charset=utf-8"),
("Content-length", str(len(body)) ),
]
start_response("200 OK", response_headers)
return (body,)
# WSGI-server (spuštěn pro jednu odpověď)
if __name__ == '__main__':
# spojení na databázi
import sqlite3
connection = sqlite3.connect('izotopy.db')
cursor = connection.cursor()
# webový server
from wsgiref.simple_server import make_server
from urllib.parse import parse_qs
server = make_server('localhost', 8080, application)
server.serve_forever()