当前位置: 首页 > news >正文

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程序了&#xff0c…...

传统行业选择企业大文件传输系统需要注意哪些?

数字化转型的洪流中,传统行业正经历着前所未有的挑战与机遇。随着数据量的激增,企业大文件传输系统的选型成为了一个至关重要的议题。今天小编将深入探讨传统行业在这一过程中的考量因素,并以镭速企业大文件传输系统为例,展示其如…...

如何配置路由器支持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 比如&#xff1a…...

如何高效管理知识产权全链条?

为了有效保护企业的创新成果,确保技术创意的顺利转化,以及高效管理知识产权案件,建立一套完善的知识产权管理体系至关重要。对于企业而言,如何有效地管理知识产权的各个环节,从研发项目到技术创意,再到提案…...

禾赛嵌入式面试题及参考答案(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个实用工具!

现在是一个短视频盛行的时代&#xff0c;几乎每个人都掌握了视频剪辑技能。 不管是因为工作也好&#xff0c;生活也罢&#xff0c;只要有视频&#xff0c;那么就一定会用到视频剪辑软件。视频裁剪已经难不倒普通人了&#xff0c;借助专业的视频裁剪工具&#xff0c;任何人都可…...

C++:std::is_convertible

C++标志库中提供is_convertible,可以测试一种类型是否可以转换为另一只类型: template <class From, class To> struct is_convertible; 使用举例: #include <iostream> #include <string>using namespace std;struct A { }; struct B : A { };int main…...

Spring Boot+Neo4j知识图谱实战:3步搭建智能关系网络!

一、引言 在数据驱动的背景下&#xff0c;知识图谱凭借其高效的信息组织能力&#xff0c;正逐步成为各行业应用的关键技术。本文聚焦 Spring Boot与Neo4j图数据库的技术结合&#xff0c;探讨知识图谱开发的实现细节&#xff0c;帮助读者掌握该技术栈在实际项目中的落地方法。 …...

JVM虚拟机:内存结构、垃圾回收、性能优化

1、JVM虚拟机的简介 Java 虚拟机(Java Virtual Machine 简称:JVM)是运行所有 Java 程序的抽象计算机,是 Java 语言的运行环境,实现了 Java 程序的跨平台特性。JVM 屏蔽了与具体操作系统平台相关的信息,使得 Java 程序只需生成在 JVM 上运行的目标代码(字节码),就可以…...

6️⃣Go 语言中的哈希、加密与序列化:通往区块链世界的钥匙

Go 语言中的哈希、加密与序列化:通往区块链世界的钥匙 一、前言:离区块链还有多远? 区块链听起来可能遥不可及,似乎是只有密码学专家和资深工程师才能涉足的领域。但事实上,构建一个区块链的核心并不复杂,尤其当你已经掌握了一门系统编程语言,比如 Go。 要真正理解区…...

[特殊字符] 手撸 Redis 互斥锁那些坑

&#x1f4d6; 手撸 Redis 互斥锁那些坑 最近搞业务遇到高并发下同一个 key 的互斥操作&#xff0c;想实现分布式环境下的互斥锁。于是私下顺手手撸了个基于 Redis 的简单互斥锁&#xff0c;也顺便跟 Redisson 的 RLock 机制对比了下&#xff0c;记录一波&#xff0c;别踩我踩过…...

写一个shell脚本,把局域网内,把能ping通的IP和不能ping通的IP分类,并保存到两个文本文件里

写一个shell脚本&#xff0c;把局域网内&#xff0c;把能ping通的IP和不能ping通的IP分类&#xff0c;并保存到两个文本文件里 脚本1 #!/bin/bash #定义变量 ip10.1.1 #循环去ping主机的IP for ((i1;i<10;i)) doping -c1 $ip.$i &>/dev/null[ $? -eq 0 ] &&am…...

Python_day48随机函数与广播机制

在继续讲解模块消融前&#xff0c;先补充几个之前没提的基础概念 尤其需要搞懂张量的维度、以及计算后的维度&#xff0c;这对于你未来理解复杂的网络至关重要 一、 随机张量的生成 在深度学习中经常需要随机生成一些张量&#xff0c;比如权重的初始化&#xff0c;或者计算输入…...

AcWing 3417:砝码称重——位集合

【题目来源】 3417. 砝码称重 - AcWing题库 【题目描述】 你有一架天平和 N 个砝码&#xff0c;这 N 个砝码重量依次是 W1,W2,⋅⋅⋅,WN。 请你计算一共可以称出多少种不同的正整数重量&#xff1f; 注意砝码可以放在天平两边。 【输入格式】 输入的第一行包含一个整数 N。 …...

【Zephyr 系列 14】使用 MCUboot 实现 BLE OTA 升级机制:构建安全可靠的固件分发系统

🧠关键词:Zephyr、MCUboot、OTA 升级、BLE DFU、双分区、Bootloader、安全固件管理 📌面向读者:希望基于 Zephyr 为 BLE 设备加入安全 OTA 升级功能的开发者 📊预计字数:5200+ 字 🧭 前言:为什么你需要 OTA? 随着设备部署数量增多与产品生命周期延长,远程升级(…...

SpringBoot+MySQL家政服务平台 设计开发

概述 基于SpringBootMySQL开发的家政服务平台完整项目&#xff0c;该系统实现了用户预约、服务管理、订单统计等核心功能&#xff0c;采用主流技术栈开发&#xff0c;代码规范且易于二次开发。 主要内容 系统功能架构 本系统采用前后端分离架构&#xff0c;前端提供用户交互…...