Я хочу сделать програмку с web-интерфейсом.
Но есть несколько проблем. Надеюсь на вашу помощь.
во-первых я полный новичок в программировании на python.
во-вторых я очень плохо владею английским (а руского мануала пока не нашел). Ковыряюсь с офицальным доком
и несколькими найдеными русскими текстами.
Соответственно, заранее прошу прощения за совсем глупые вопросы. И надеюсь, на более подробные объяснения.
И так. Я уже нашел код сервера. Который как я думаю, должен делать нужное мне.
Но к сожалению он был выложен на форуме не очень аккуратно и все отступы накрылись. (вероятнее всего это главная причина, того что код не работает).
Пожалуйста подправте или дайте похожий, но рабочий код.
import BaseHTTPServer
import cgi
import string
class RequestHandler(BaseHTTPServer.BaseHTTPRequestHandler):
def showPage(self,method,get_data,post_data):
self.wfile.write("HTTP/1.1 200 OK\n");
self.wfile.write("Content-Type: text/html\n")
self.wfile.write("\n");
responce = """
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Simple HTTP Server</title>
<meta name="description" content="Simple HTTP Server" />
</head>
<body style="background:white;">
Method $method<br />
Path: $path<br />
get data $get_data<br />
post data $post_data<br />
<form action="" method="post">
<input type="text" name="value1">
<input type="submit" name="value2">
</form>
</body>
</html>
"""
s = string.Template(responce)
responce = s.substitute(dict(
get_data=get_data,
post_data=post_data,
path=self.path,
method=method
))
self.wfile.write(responce);
def do_GET(self):
get_data = cgi.parse_qs(self.path[2:])
self.showPage('GET',get_data,{})
def do_POST(self):
get_data = cgi.parse_qs(self.path[2:])
cl, cl2 = cgi.parse_header(self.headers.get('content-length'))
qs = self.rfile.read(int(cl))
post_data = cgi.parse_qs(qs.decode())
self.showPage('GET',get_data,post_data)
class ChatServer(BaseHTTPServer.HTTPServer):
def __init__(self,address,handler):
BaseHTTPServer.HTTPServer.__init__(self,address,handler)
def main():
try:
server = ChatServer(('localhost', 8080), RequestHandler)
server.serve_forever()
except KeyboardInterrupt:
print('^C received, shutting down server')
server.socket.close();
if __name__ == '__main__':
main()
C:\Python\project>wserver
File “C:\Python\project\wserver.py”, line 6
def showPage(self,method,get_data,post_data):
^
IndentationError: expected an indented block