启动http网络服务器然后打开浏览器

2024-01-11

我正在尝试启动一个简单的 HTTP 服务器,然后在默认浏览器中打开它。我不知道我做错了什么,它要么根本不启动服务器,要么一旦到达脚本末尾就停止(它不是应该永远运行吗?)。

import BaseHTTPServer, SimpleHTTPServer, webbrowser, thread
def start_server():
  httpd = BaseHTTPServer.HTTPServer(('127.0.0.1', 3600), SimpleHTTPServer.SimpleHTTPRequestHandler)
  httpd.serve_forever()
thread.start_new_thread(start_server,())
url = 'http://127.0.0.1:3600'
webbrowser.open_new(url)

只要应用程序继续运行,线程就会继续存在,在这种情况下webbrowser.open_new()不是阻塞的,所以浏览器很难完成应用程序的运行,你应该做的是创建一个阻止程序来阻止应用程序完成执行:

import sys
import thread
import webbrowser
import time

import BaseHTTPServer, SimpleHTTPServer

def start_server():
    httpd = BaseHTTPServer.HTTPServer(('127.0.0.1', 3600), SimpleHTTPServer.SimpleHTTPRequestHandler)
    httpd.serve_forever()

thread.start_new_thread(start_server,())
url = 'http://127.0.0.1:3600'
webbrowser.open_new(url)

while True:
    try:
        time.sleep(1)
    except KeyboardInterrupt:
        sys.exit(0)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

启动http网络服务器然后打开浏览器 的相关文章

随机推荐

  • as3数组按索引删除

    我有一个数组 cat dog budgie 并想通过索引删除该项目 此刻我有 function removeit myindex animals myindex animals pop 你想要拼接 http help adobe com e
  • 如何过滤子文档数组?

    我有一个结构如下的文档 id ObjectId 564d2702d4c68225cb00726f list a NumberInt 1 test public a NumberInt 2 test public a NumberInt 3
  • 返回按其他列分组的第一个非空值

    How to go from left to right Basically for each TIME person combo I need the first non null value from the id columns 聚合
  • Doctrine2 忽略数据库表

    我正在使用 Doctrine 2 我想生成数据库的 ORM 但我不想选择数据库的所有表 例如 在此数据库中 表1没有主键 表2 正常情况 我想使用此命令仅选择表 2 doctrine mapping convert from databas
  • 生成 PDF 文件,绘制带圆角的多边形

    如果我想编写一个生成以下结果的 Python 脚本 那么什么工具适合这项工作呢 PDF 格式的矢量图形 特别是 我需要绘制填充带圆角的多边形 即由直线和直线组成的平面图形圆弧 看起来绘图库 http matplotlib sourcefor
  • 在 Rebol 中,逐行读取文本文件的惯用方法是什么?

    为了逐行读取文本文件 而不将整个文件加载到内存中 在 Rebol 中执行此操作的常用方法是什么 我正在执行以下操作 但我认为 如果我错了 请纠正我 它首先将整个文件加载到内存中 foreach line read lines file tx
  • 字符串上的模式匹配

    我想知道是否有办法在 c 7 中执行类似的操作 var test aaeag switch test case test StartsWith a break default break 遗憾的是 这看起来不可能 这是正确的还是我做错了什么
  • 将 SQL 语句存储在属性文件中以供 Python 脚本使用?

    我不知道如何最好地表达这个问题 但我会尝试 我有几个通过 crontab 执行的 python 脚本 这些脚本执行一些数据库操作 例如选择和更新 在不同的数据库上 并且有些脚本使用相同的 SQL 语句 就目前情况而言 我使用了 SQL 查询
  • 轮播引导程序不起作用

    有人可以帮助我吗 我正在测试引导轮播 但它不起作用 具体来说 上一张 下一张按钮不起作用 轮播不会滑到下一张幻灯片 这是我页面的代码 但我不知道我做错了什么
  • 如何在powerapps中设置下拉菜单的默认值

    我在 powerapps 中有一个下拉菜单 需要设置默认值 My Items我将下拉列表的属性链接到我的数据源 Azure 表 dbo ColorTable 可以看到内容简化如下 Table ColorName red ID 1 Color
  • 您在编写网页时使用哪种文档类型?

    我只是对 Google Yahoo 和 Stackoverflow 中的 doctype 使用感到好奇 我发现上述3个网站使用HTML4 01 doctype 很多人说我们应该使用XHTML1 0 doctype 但上述3个网站没有这样做
  • 如何在SQL Server 2005数据库之间传输sql加密数据?

    我有一个现有的 SQL Server 2005 数据库 其中包含使用对称密钥加密的数据 对称密钥使用密码打开 我正在对使用该数据库的前端应用程序进行升级 其中包括添加数十个新表 存储过程 UDF 等 以及对现有表和数据库对象进行数十项修改
  • 使用 LinQ 合并 2 不同类型的列表

    我有 2 个清单 如果它们都是类型string 我可以使用以下方法合并它们 List
  • DataTables:如果标题中有复选框和弹出控件,如何避免列排序?

    我有一个 DataTables 表 其中一些标题列中有复选框和弹出窗口 另外我也使用FixedColumn和ColReorder插件 我在 jsfiddle 中的模型位于底部 我的问题是 如果用户尝试检查复选框或推送弹出窗口 排序事件就会接
  • 将矩阵分割成小矩阵块的方法

    我有一个问题 想知道是否有人可以提供理想的解决方案 基本上 小数据 但是 如果我有一个像这样的矩阵 0 1 0 0 1 1 1 0 0 0 0 0 1 1 0 0 然后 我需要将该矩阵分割成与第二个矩阵大小相同的块 在本例中为 2x2 0
  • C语言中如何检查内存地址是否32位对齐

    我的问题有两个部分 首先 作为这个地址空间的新手 我想知道地址的内存对齐的含义是什么 我用谷歌搜索了一下 但也想在这里问这个问题 因为我发现这里的答案非常有用 我的问题的第二部分与对齐和编程有关 如何确定地址是否是 4 字节对齐的 我在某处
  • iOS 中的 HTTP POST 请求 [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 嗨 我是 ios 新手 直到现在我还没有向 php 发送任何调用 今天我尝试了以下代码 void sendRequest NSStri
  • 使用 Doctrine 2 在 Zend Framework 2 中使用实体中的 inputfilter 进行实体存在验证

    我一直在这样的实体类中构建所有验证 class User protected inputFilter public function getInputFilter if this gt inputFilter inputFilter new
  • 如何在 Android Studio 中查看 NDK 的原始 Gradle 构建日志?

    当使用Gradle 实验插件 http tools android com tech docs new build system gradle experimental使用 Android studio 构建 NDK 库 您如何查看低级构建
  • 启动http网络服务器然后打开浏览器

    我正在尝试启动一个简单的 HTTP 服务器 然后在默认浏览器中打开它 我不知道我做错了什么 它要么根本不启动服务器 要么一旦到达脚本末尾就停止 它不是应该永远运行吗 import BaseHTTPServer SimpleHTTPServe