原型设计:最简单的HTTP服务器,带有URL路由(使用Backbone.Router)



我们正在开发一个 Backbone.js 应用程序,我们可以通过键入 python -m SimpleHTTPServer 来启动 HTTP 服务器这一事实非常出色。

我们希望能够路由任何网址(例如 localhost:8000/path/to/something ( 到我们的index.html,以便我们可以用 HTML5 pushState 测试Backbone.Router

实现这一目标

最无痛的方法是什么?(用于快速原型制作(

只需在BaseHTTPServer中使用内置的python功能

import BaseHTTPServer
class Handler( BaseHTTPServer.BaseHTTPRequestHandler ):
    def do_GET( self ):
        self.send_response(200)
        self.send_header( 'Content-type', 'text/html' )
        self.end_headers()
        self.wfile.write( open('index.html').read() )
httpd = BaseHTTPServer.HTTPServer( ('127.0.0.1', 8000), Handler )
httpd.serve_forever()
  1. 下载并安装樱桃派

  2. 创建以下 python 脚本(称为 always_index.py 或类似的东西(,并将"c:\index.html"替换为要使用的实际文件的路径

    import cherrypy
    class Root:
        def __init__(self, content):
            self.content = content
        def default(self, *args):
            return self.content
        default.exposed = True
    cherrypy.quickstart(Root(open('c:index.html', 'r').read()))
    
  3. 运行python <pathtoalways_index.py>
  4. 将浏览器指向http://localhost:8080,无论您请求什么URL,您始终会获得相同的内容。

最新更新