Last active
January 25, 2017 06:30
-
-
Save nomelif/45537c8770184238af2ff26ae9687a0c to your computer and use it in GitHub Desktop.
susirunko.py
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# WSGI:n perus kirjasto | |
from wsgiref.simple_server import make_server | |
# Tätä funktiota kutsutaan aina, kun selain haluaa sivun | |
# environ: yleistä tietoutta: mitä sivua kysyttiin, millainen vempain jne jne jne | |
# start_response: funktio, jolla kerrotaan WSGIlle palautetun kaman tyyppi ja mahdolliset virheet | |
ilmoittautuneet = [] | |
# Generoidaan GM-salasana | |
from random import randint | |
# Tekee 16-kantaisen ison luvun, käytännössä kirjaimia ja lukuja purukumimaisesti. | |
# Ei mikään tosielämän vahva salasana, mutta toimii tähän käyttöön | |
salasana = hex(randint(10**10, 10**11)) | |
print("GM:n salasana: "+salasana) | |
# Selvitetään koneen osoite, niin tiedetään, mihin yhdistää | |
import socket | |
ip = socket.gethostbyname(socket.gethostname()) # Sen koneen ip, jonka nimi on tämän koneen nimi => tään koneen ip | |
print("Yhdistä selain http://"+ip+":8080/") | |
def application(environ, start_response): | |
# Tämä on pyydetyn sivun osoite | |
polku = environ["PATH_INFO"] | |
# Tämän sivun lähettäjän antamat GET-muuttujat | |
muuttujatietoa = environ["QUERY_STRING"] | |
print("Pyydettiin sivua: " + polku) | |
sivu = ... # Tee haluamasi sivu stringiksi, ääkköset eivät ole suositellut | |
# Ne voi btw. korvata HTML:ssä yleisesit ä => ä, ö => ö, Ä => Ä, Ö => ö | |
# Heitän HTMLää, kaikki meni putkeen | |
start_response('200 OK', [('Content-Type', 'text/html')]) | |
# Palautetaan itse generoitu HTML, WSGI haluaa sen hiukka häröön muotoon | |
return [bytes(sivu, 'utf-8')] | |
# Luodaan palvelin pyörimään portilla 8080 (tyypillisesti vapaa) | |
# '': kenelle vastataan, tyhjä stringi tarkoittaa, että vastataan kaikille | |
# 8080: portti | |
# application: mitä funktiota kutsutaan, kun tulee pyyntö | |
srv = make_server('', 8080, application) | |
try: | |
# Palvelimen ääretön silmukka käyntiin | |
srv.serve_forever() | |
# Odotetaan virhettä silmukoinnin lopettamiseksi, tässä tapauksessa KeyboardInterrupt | |
# Kyseisen virheen saa heitettyä näppikseltä painamalal ctrl-c | |
# Palvelimen voi siis pysäyttää kyseisellä yhdistelmällä | |
except KeyboardInterrupt: | |
pass |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment