私は正しい方法でこれについて説明しますか?私はこれまでにこのようなことをしたことがないので、私がやっていることを100%確信していません。これまでのコードではhtmlやcssファイルが得られ、それはうまくいきますが、イメージは読み込まれません。また、異なるファイルタイプごとに新しい "if"を作成する必要がありますか?Pythonウェブサーバーを作成する - レイアウトとセットアップ
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("<HTML>POST OK.<BR><BR>");
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()
HTMLとCSS動作しますが、PNG画像は、if
文の一式に関しては通常のアプローチを
は、あなたがあなた自身のHTTPを展開するために十分な理由を持っていますかtoptal.comからオープン(CURDIR + 9月+ self.path)を使用し、オープン(CURDIR + 9月+ self.path、 "B")
Gergelyのサーバ?そこに多くの、多くの良いpython Webサーバーがあります。興味を持っイムは、それがどのように動作するかを確認するためにため –
イムはそれをやって、アイブ氏は –
私は関連のポストからF =オープン(CURDIR + 9月+ self.path、「RB」)で –