2014-10-10 788 views
-3

我想在浏览器中显示来自python脚本的html。我如何运行这个脚本,以便在浏览器中查看它。 到目前为止的代码:如何在浏览器中运行python脚本?

index.py

### to run python in browser i have added below lines 
#!/usr/bin/env python 
header = open("header.html", "r") 
print header 

和我header.html

<!DOCTYPE html> 
<html> 
<head> 
    <title>A Python To Do list</title> 
    <link rel="stylesheet" type="text/css" href=""> 
</head> 
<body> 
+0

基本上你不能。使用一些框架,如我们Django,瓶等 – nu11p01n73R 2014-10-10 07:26:01

+0

我主要关注如何在浏览器中运行脚本,并感谢您的时间@ nu11p01n73R – 2014-10-10 07:27:31

+0

为什么downvote downvoters – 2014-10-10 07:27:53

回答

1

Bassically可以使用BaseHTTPServer这样并运行代码。

localhost.py

#!/usr/bin/env python 

import BaseHTTPServer 

class HTTPFrontend(object) : 
    def __init__(self, port) : 
     self.server = BaseHTTPServer.HTTPServer(('', port), self.RequestHandler) 
     print "Web interface listening on http://localhost:" + str(port) 

    def start(self) : 
     self.server.serve_forever() 

    def stop(self) : 
     self.server.socket.close() 

    class RequestHandler(BaseHTTPServer.BaseHTTPRequestHandler) : 
     def do_GET(self) : 
      self.send_response(200) 
      self.send_header('Content-Type', 'text/html') 
      self.end_headers() 

      templateFile = open("home.html") 
      template = templateFile.read() 
      templateFile.close() 

      message = "this is how simple templating works" 

      self.wfile.write(template % {'message': message}) 

     def do_POST(self) : 
      self.send_response(200) 
      self.send_header('Content-Type', 'text/html') 
      self.end_headers() 
      self.wfile.write("this is a POST") 

if __name__ == "__main__": 
    server = HTTPFrontend(8080) 
    server.start() 

home.html的

<html> 
    <head> 
     <title>Python | Home</title> 
    </head> 
    <body> 
      %(message)s 
    </body> 
</html> 

如果你在浏览器中打开http://localhost:8654你:

this is how simple templating works 
+0

这个文件放在哪个文件夹 – 2014-10-10 10:38:52

+0

任何你想运行它的地方,只要该html文件是py文件的兄弟文件,就像你在localhost.py中注意到的那样 – rynangeles 2014-10-10 10:48:04

相关问题