用于为具有实时重新加载功能的静态文件提供服务的web服务器库和命令行实用程序
httpwatcher的Python项目详细描述
概述
httpwatcher是一个库和命令行实用程序,用于启动 一个简单的http服务器,用于从特定根路径提供静态文件。 实时重新加载是通过web套接字触发的。
注意httpwatcher是为测试期间的开发人员准备的 他们的静态网站,并不是作为一个生产 网络服务器。
要求
要安装httpwatcher,您需要:
- python 2.7+或python 3.5+
- pip或easy_install
安装
当您的virtual environment处于活动状态时,运行 以下内容:
> pip install httpwatcher
要升级到最新版本的httpwatcher,只需:
> pip install -U httpwatcher
用法
httpwatcher可以从命令行使用,也可以作为 在您自己的python应用程序中放置库。
命令行用法
最快的启动和运行方式是查看当前文件夹 从http://localhost:5555开始提供您的内容,如下所示:
# Also opens your web browser at http://localhost:5555 > httpwatcher # To get more help > httpwatcher --help
所有可能的选项:
> httpwatcher --root /path/to/html \ # static root from which to serve files --watch "/path1,/path2"\ # comma-separated list of paths to watch (defaults to the static root) --host 127.0.0.1 \ # bind to 127.0.0.1 --port 5556\ # bind to port 5556 --base-path /blog/ \ # serve static content from http://127.0.0.1:5556/blog/ --verbose \ # enable verbose debug logging --no-browser # causes httpwatcher to not attempt to open your web browser automatically
库使用
确保将httpwatcher作为python的依赖项安装 项目,然后:
importhttpwatcher# Just watch /path/to/html, and serve from that same pathhttpwatcher.watch("/path/to/html")
注意与HttpWatcherServer不同的是,httpwatcher.watch 函数会自动假定您要打开默认网站 位于服务站点的基本URL的浏览器。为了避免这种情况,请 以下内容:
importhttpwatcherhttpwatcher.watch("/path/to/html",open_browser=False)
直接使用watcher服务器并对i/o有更多的控制 循环:
fromhttpwatcherimportHttpWatcherServerfromtornado.ioloopimportIOLoopdefcustom_callback():print("Web server reloading!")server=HttpWatcherServer("/path/to/html",# serve files from the folder /path/to/htmlwatch_paths=["/path1","/path2"],# watch these paths for changeson_reload=custom_callback,# optionally specify a custom callback to be called just before the server reloadshost="127.0.0.1",# bind to host 127.0.0.1port=5556,# bind to port 5556server_base_path="/blog/",# serve static content from http://127.0.0.1:5556/blog/watcher_interval=1.0,# maximum reload frequency (seconds)recursive=True,# watch for changes in /path/to/html recursivelyopen_browser=True# automatically attempt to open a web browser (default: False for HttpWatcherServer))server.listen()try:# will keep serving until someone hits Ctrl+CIOLoop.current().start()exceptKeyboardInterrupt:server.shutdown()
httpwatcher.watch采用的参数与 HttpWatcherServer的构造函数参数(如上所述除外 之前,对于open_browser参数)。只是为了方便 方法来实例化并运行一个简单的HttpWatcherServer。
内部加工
httpwatcher广泛使用 Tornado异步web框架 促进异步http和websocket服务器的结合。所有HTML 包含结束标记</body>的服务内容将 自动插入两个<script>标记,以便 websockets连接回服务器。
WebSockets端点位于 http://localhost:5555/httpwatcher默认情况下,javascript 便于重新加载的文件位于 http://localhost:5555/httpwatcher.min.js默认(取决于 您的主机和端口设置)。
背景
这个库是因为需要一个简单的web服务器,能够 提供具有实时重新加载功能的静态文件,同时还提供 能够从非标准基本路径(例如,从 http://somesite.com/blog/与总是 http://somesite.com)。更具体地说,这是用来 Statik-静态web 现场发电机。
那张livereload 图书馆曾经很好,直到真正需要修改 车轮从车上掉下来的地方。更多的功能单元测试 需要验证基本功能,并且更灵活 在某些方面需要,因此构建了httpwatcher。
贡献
请随意贡献!分叉存储库,在 功能分支,然后提交拉取请求。
许可证
MIT许可证(MIT)
版权所有(c)2017 Thane Thomson
特此免费向任何获得 本软件和相关文档文件的副本 “软件”),无限制地处理软件,包括 但不限于使用、复制、修改、合并、发布, 分发、再授权和/或出售软件副本,以及 允许向其提供软件的人员这样做,但须遵守 以下条件:
上述版权公告及本许可公告须包括在内 在软件的所有副本或大部分中。
软件按“原样”提供,不作任何形式的保证 或implIED,包括但不限于 市场稳定性、特定用途的适用性和非侵权性。 在任何情况下,作者或版权持有人均不对任何 索赔、损害赔偿或其他责任,无论是在诉讼或合同中, 侵权行为或其他,由 软件或软件的使用或其他交易