Note that there are some explanatory texts on larger screens.

plurals
  1. POCreating a Python webserver - layout and setup
    primarykey
    data
    text
    <p>am I going about this in the correct way? Ive never done anything like this before, so im not 100% sure on what I am doing. The code so far gets html and css files and that works fine, but images wont load, and will I have to create a new "if" for every different file type? or am I doing this a silly way...here is what I have: </p> <pre><code>import string,cgi,time from os import curdir, sep from BaseHTTPServer import BaseHTTPRequestHandler, HTTPServer import os import mimetypes #import pri port = 888 host = "0.0.0.0" class MyHandler(BaseHTTPRequestHandler): def do_GET(self): try: #RequestedURL = self.path mimeType = mimetypes.guess_type(self.path)[0] fileType = mimetypes.guess_extension(mimeType) infoList = [mimeType, fileType] if infoList[1] != ".py": self.send_response(200) self.send_header('Content-type', mimeType) self.end_headers() f = open(curdir + sep + self.path, "rb") self.wfile.write(f.read()) f.close() return if fileType == ".py": pythonFilename = self.path.lstrip("/") self.send_response(200) self.send_header('Content-type', 'text/html') self.end_headers() pyname = pythonFilename.replace("/", ".")[:-3] print pythonFilename print pyname temp1 = pyname.split(".") temp2 = temp1[-1] print temp2 module = __import__(root.index) self.wfile.write(module.root.index.do_work()) #module = __import__("test.index") #self.wfile.write( module.index.do_work()) return return except IOError: self.send_error(404,'File Not Found: %s' % self.path) def do_POST(self): global rootnode try: ctype, pdict = cgi.parse_header(self.headers.getheader('content-type')) if ctype == 'multipart/form-data': query=cgi.parse_multipart(self.rfile, pdict) self.send_response(301) self.end_headers() upfilecontent = query.get('upfile') print "filecontent", upfilecontent[0] self.wfile.write("&lt;HTML&gt;POST OK.&lt;BR&gt;&lt;BR&gt;"); self.wfile.write(upfilecontent[0]); except : pass def main(): try: server = HTTPServer((host, port), MyHandler) print 'started httpserver:' print ("Host: " + (host)) print ("Port: " + str(port)) server.serve_forever() except KeyboardInterrupt: print '^C received, shutting down server' server.socket.close() if __name__ == '__main__': main() </code></pre> <p>html and css works, but png images do not load</p>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload