Python3自带HTTP服务:轻松开启与后台管理
Python3自带有http服务,可以在服务器,也可以在本地启动,并运行一些常用的网页程序。比如:我们可以把streamlit框架编写的网页放到服务器上,开启http服务,就可以通过网页来调用这个pythont程序了,如下面的单词批量查询工具。我们服务器某个端口上运行这个程序,再通过1panel为这个服务器建立一个反向代理,申请一个免费的证书,就可以通过域名来访问这个python程序了。

下面,我们一起来看看如何开启和使用web服务器。
一、开启Web服务
1. 基本方法
Python 3内置了简单的HTTP服务器,操作非常简便。
如果还没有在服务器上安装python,请自行查询相关资料安装。安装完成后,请按照以下步骤进行:
首先,进入www目录:
cd www
用python命令,启动HTTP服务器:
python3 -m http.server
如果是在本地,可以运行以下代码:
启动成功后,你会看到“Serving HTTP on 0.0.0.0 port 8000…”的提示,说明服务已在8000端口启动。
2. 后台运行服务
如果希望将服务放在后台运行,可以在命令后加上&,这样按Ctrl+C也不会关闭服务:
python3 -m http.server &
为了确保服务不会被挂起,可以使用nohup命令:
nohup python3 -m http.server 8001 &
二、指定端口
如果想使用其他端口,只需在命令中最后,附加端口号,例如:
python3 -m http.server 8001
这样就会在8001端口启动HTTP服务。默认会从8501这个端口开启,如果端口被占用会继续顺延。
三、使用Web服务
访问 http://0.0.0.0:8000/ 可以查看www目录下的网页文件。
如果没有index.html,则会显示目录内容。此外,可以用ifconfig命令查看本机IP并进行访问。
四、nohup后台运行与关闭程序
对于需要长时间运行或输出信息较多的程序,建议使用后台运行并将输出保存到日志中,具体步骤如下:
1. 运行命令
nohup python3 -u test.py > test.log 2>&1 &
例如,我要在我的服务器上运行一个dic.py的文件,可以cd到py文件所在dict目录运行以下代码:
nohup python3 -m streamlit run dic.py

2. 按回车键,输入exit命令退出终端
注意:请勿直接关闭终端。
3. 命令解析
&:后台运行程序
nohup:程序不受挂起影响,即使退出服务器,也能后台运行该程序
-u:不启用缓存,实时输出
test.py:要执行的Python文件
test.log:保存输出的日志文件
>:将打印信息重定向到日志文件
2>&1:将标准错误输出重定向到标准输出
五、查看与管理后台程序
你可以使用以下命令查看和管理后台运行的程序:
1. 查看当前终端任务
jobs命令:
查看当前终端后台运行的任务,jobs -l 可显示任务PID。
2. 查看所有进程
ps命令:
查看所有进程。使用如下命令:bash
ps -aux | grep "test.py"
六、结束进程
使用kill命令结束进程的步骤:
通过jobs命令查看任务编号,然后执行:
kill %jobnum
通过ps命令获取进程号PID,执行:
kill PID

对于前台运行的程序,可以直接按 Ctrl+C 终止。
这样,你就能轻松地管理Python的HTTP服务,并有效地在后台运行你的程序!
相关文章:
Python3自带HTTP服务:轻松开启与后台管理
Python3自带有http服务,可以在服务器,也可以在本地启动,并运行一些常用的网页程序。比如:我们可以把streamlit框架编写的网页放到服务器上,开启http服务,就可以通过网页来调用这个pythont程序了,…...
传统行业选择企业大文件传输系统需要注意哪些?
数字化转型的洪流中,传统行业正经历着前所未有的挑战与机遇。随着数据量的激增,企业大文件传输系统的选型成为了一个至关重要的议题。今天小编将深入探讨传统行业在这一过程中的考量因素,并以镭速企业大文件传输系统为例,展示其如…...
如何配置路由器支持UDP
一、UDP协议简介 UDP是一种传输层协议,与TCP(传输控制协议)不同,它不需要建立连接,因此传输速度较快。由于UDP不需要确认数据包的接收状态,它适用于不需要严格数据完整性但需要低延迟的场景。 常见的UDP应…...
CorePress Pro 网站加载慢 WordPress
一般来说是你用了「CorePress天气模块」 解决方案:这个插件从你右侧边栏里删掉就可以了(上方的图中已经是删掉后的效果了) 寻找加载时间长的原因: 谷歌浏览器F12->网络->打开录制->ShiftF5 得出结论:和风天气…...
关于uniapp wifi调用走过的坑
1. uniapp老脚手架与uni-wif带来的兼容性问题 且几乎找不到解决方法 2. uni-wif需要插件市场安装 3.还有一种可以使用导入安卓类的方式,可以正常获取到已经连接ssid(wifi名称),也可以获取到wifi列表 , 但ScanResul…...
docker学习笔记(1.0)
docker命令 下载镜像相关命令 检索:docker search 比如:docker search nginx 是查看有没有nginx镜像 后面的OK表示是不是官方镜像,如果有就是官方镜像,如果没有就是第三方的。 下载:docker pull 比如:…...
如何高效管理知识产权全链条?
为了有效保护企业的创新成果,确保技术创意的顺利转化,以及高效管理知识产权案件,建立一套完善的知识产权管理体系至关重要。对于企业而言,如何有效地管理知识产权的各个环节,从研发项目到技术创意,再到提案…...
禾赛嵌入式面试题及参考答案(2万字长文)
TCP/IP 的连接建立(三次握手)和断开过程(四次挥手) 连接建立(三次握手): 第一次握手:客户端向服务器发送一个 SYN(同步)包,这个包中包含客户端选择的初始序列号(Sequence Number)。此时客户端进入 SYN_SENT 状态,表示客户端已发送 SYN 包等待服务器确认。 第二…...
C++进阶知识1继承
继承 1. 继承的概念及定义1.1 继承的概念1.2 继承定义1.2.1 定义格式1.2.2 继承基类成员访问⽅式的变化 1.3 继承类模板 2. 基类和派⽣类间的转换3. 继承中的作⽤域3.1 隐藏规则: 4. 派⽣类的默认成员函数4.1 4个常⻅默认成员函数4.2 实现⼀个不能被继承的类 5. 继承…...
vue中使用exceljs和file-saver插件实现纯前端表格导出Excel(支持样式配置,多级表头)
实现:使用Excel.js库创建excel文件,然后再使用 file-saver库将 Excel 文件保存到用户的本地计算机。 1.安装,可以使用npm,yarn npm install exceljs npm install file-saver 2.封装生成excel的方法 // 封装exceljs const ExcelJ…...
C语言编写一个五子棋游戏-代码实例讲解与分析
编写一个完整的五子棋游戏(Gomoku 或 Gobang)在C语言中是一个相对复杂的任务,因为它涉及到用户界面的处理、游戏逻辑的维护以及可能的AI对手设计。在这里,我将提供一个简化的版本,这个版本将使用控制台来接收用户输入&…...
Linux——k8s组件
kubernetes 使用1.31.1 版本搭建集群核心组件,选择flannel 网络插件为整体集群的运行提供网络通信功能。 flannel 网络插件 kube-flannel kube-flannel-ds-9fgml 1/1 Running 1 (18m ago) 2d21h kube-flannel kube-flannel-ds-ghwbq …...
基于RustDesk自建远程桌面服务
最近向日葵越来越难用了,官方好像限制了免费用户的带宽,但是限制的有点过头了,卡的基本没法用。 向日葵的平替todesk对于免费用户又有时长限制,对于经常用的小伙伴不大友好。 咱也不是说非得白嫖,但是向日葵和todesk这…...
Devicenet从站数据 转profinet IO项目案例
目录 1 案例说明 1 2 VFBOX网关工作原理 1 3 准备工作 2 4 网关用DEVICENET协议采集数据 3 5 用PROFINET IO协议转发数据 4 6 案例总结 7 1 案例说明 设置网关采集Devicenet从站设备数据把采集的数据转成profinet IO协议转发给其他系统。 2 VFBOX网关工作原理 VFBOX网关是协…...
C语言实现队列
队列 前言一、队列的结构1.实现思路2.代码结构 二、队列的实现1.初始化和销毁2.判空和获取队列大小3.入队列和出队列4.获取队头和队尾元素5.测试 总结每文推荐 前言 队列是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操…...
Python使用scrapy创建项目爬虫步骤
一、安装导入 使用包管理器下载 pip install scrapy 二、创建Scrapy项目 首先需要进入你创建项目的目录下,打开cmd窗口或powershell窗口: scrapy startproject 项目名称(英文) 三、了解项目结构 scrapy.cfg # 项目的配置文件…...
长沙某公司.Net高级开发面试题
1.dot net core跟dot net比较有哪些更好的地方? 第一是跨平台,它可以运行在三大操作系统上面,windows, Linux和MAC。 第二是对架构本身安装没有依赖,因为所有的依赖都跟程序本身在一起。 第三是dot net core处理请求…...
物联网系统中声音拾取音频方案_咪头
01 物联网系统中为什么要使用咪头 物联网系统中使用咪头(麦克风或传声器)的原因主要可以归结为以下几个方面: 声音信号的拾取与转换 基本功能:咪头是一种将声音转换为电信号的装置。在物联网系统中,咪头负责捕捉周围…...
【题解】Codeforces Round 975 (Div. 2) A~E
A. Max Plus Size 分别假设答案为取第偶数位的最大值和取第奇数位的最大值两种情况, 取更优解. 取偶数位的最大值时, 把所有其他都偶数位都取上. 奇数同理. code: int solve(int _) {int n;cin >> n;vector<int>a(n 1);int Maxj 0, Maxo 0;for (int i 1; i …...
如何搞定视频裁剪?新手小白零基础剪辑,分享5个实用工具!
现在是一个短视频盛行的时代,几乎每个人都掌握了视频剪辑技能。 不管是因为工作也好,生活也罢,只要有视频,那么就一定会用到视频剪辑软件。视频裁剪已经难不倒普通人了,借助专业的视频裁剪工具,任何人都可…...
铭豹扩展坞 USB转网口 突然无法识别解决方法
当 USB 转网口扩展坞在一台笔记本上无法识别,但在其他电脑上正常工作时,问题通常出在笔记本自身或其与扩展坞的兼容性上。以下是系统化的定位思路和排查步骤,帮助你快速找到故障原因: 背景: 一个M-pard(铭豹)扩展坞的网卡突然无法识别了,扩展出来的三个USB接口正常。…...
Docker 离线安装指南
参考文章 1、确认操作系统类型及内核版本 Docker依赖于Linux内核的一些特性,不同版本的Docker对内核版本有不同要求。例如,Docker 17.06及之后的版本通常需要Linux内核3.10及以上版本,Docker17.09及更高版本对应Linux内核4.9.x及更高版本。…...
(二)TensorRT-LLM | 模型导出(v0.20.0rc3)
0. 概述 上一节 对安装和使用有个基本介绍。根据这个 issue 的描述,后续 TensorRT-LLM 团队可能更专注于更新和维护 pytorch backend。但 tensorrt backend 作为先前一直开发的工作,其中包含了大量可以学习的地方。本文主要看看它导出模型的部分&#x…...
Go 语言接口详解
Go 语言接口详解 核心概念 接口定义 在 Go 语言中,接口是一种抽象类型,它定义了一组方法的集合: // 定义接口 type Shape interface {Area() float64Perimeter() float64 } 接口实现 Go 接口的实现是隐式的: // 矩形结构体…...
第 86 场周赛:矩阵中的幻方、钥匙和房间、将数组拆分成斐波那契序列、猜猜这个单词
Q1、[中等] 矩阵中的幻方 1、题目描述 3 x 3 的幻方是一个填充有 从 1 到 9 的不同数字的 3 x 3 矩阵,其中每行,每列以及两条对角线上的各数之和都相等。 给定一个由整数组成的row x col 的 grid,其中有多少个 3 3 的 “幻方” 子矩阵&am…...
CMake控制VS2022项目文件分组
我们可以通过 CMake 控制源文件的组织结构,使它们在 VS 解决方案资源管理器中以“组”(Filter)的形式进行分类展示。 🎯 目标 通过 CMake 脚本将 .cpp、.h 等源文件分组显示在 Visual Studio 2022 的解决方案资源管理器中。 ✅ 支持的方法汇总(共4种) 方法描述是否推荐…...
.Net Framework 4/C# 关键字(非常用,持续更新...)
一、is 关键字 is 关键字用于检查对象是否于给定类型兼容,如果兼容将返回 true,如果不兼容则返回 false,在进行类型转换前,可以先使用 is 关键字判断对象是否与指定类型兼容,如果兼容才进行转换,这样的转换是安全的。 例如有:首先创建一个字符串对象,然后将字符串对象隐…...
android13 app的触摸问题定位分析流程
一、知识点 一般来说,触摸问题都是app层面出问题,我们可以在ViewRootImpl.java添加log的方式定位;如果是touchableRegion的计算问题,就会相对比较麻烦了,需要通过adb shell dumpsys input > input.log指令,且通过打印堆栈的方式,逐步定位问题,并找到修改方案。 问题…...
【SpringBoot自动化部署】
SpringBoot自动化部署方法 使用Jenkins进行持续集成与部署 Jenkins是最常用的自动化部署工具之一,能够实现代码拉取、构建、测试和部署的全流程自动化。 配置Jenkins任务时,需要添加Git仓库地址和凭证,设置构建触发器(如GitHub…...
Java求职者面试指南:Spring、Spring Boot、Spring MVC与MyBatis技术解析
Java求职者面试指南:Spring、Spring Boot、Spring MVC与MyBatis技术解析 一、第一轮基础概念问题 1. Spring框架的核心容器是什么?它的作用是什么? Spring框架的核心容器是IoC(控制反转)容器。它的主要作用是管理对…...

