广告
返回顶部
首页 > 资讯 > 后端开发 > Python >怎么在Python3 中开启自带的http服务
  • 821
分享到

怎么在Python3 中开启自带的http服务

2023-06-15 03:06:54 821人浏览 泡泡鱼

Python 官方文档:入门教程 => 点击学习

摘要

今天就跟大家聊聊有关怎么在python3 中开启自带的Http服务,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。1.基本方式python中自带了简单的服务器程序,能较容易地打开服务。

今天就跟大家聊聊有关怎么在python3 中开启自带的Http服务,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

1.基本方式

python中自带了简单的服务器程序,能较容易地打开服务。

Python3中将原来的Simplehttpserver命令改为了http.server,使用方法如下:

cd www目录

python -m http.server

开启成功,则会输出“Serving HTTP on 0.0.0.0 port 8000 (http://0.0.0.0:8000/) …”,表示在本机8000端口开启了服务。

如果需要后台运行,可在命令后加"&"符号,Ctrl+C不会关闭服务,如下:

python -m http.server &

如果要保持服务,则在命令前加nohup以忽略所有挂断信号,如下:

nohup python -m http.server 8001

2.指定端口

如果不使用默认端口,可在开启时附带端口参数,如:

python -m http.server 8001

则会在8001端口打开http服务。

使用WEB服务

可以使用http://0.0.0.0:8000/查看www目录下的网页文件,若无index.html则会显示目录下的文件。

也可以使用ifconfig命令查看本机IP并使用。

补充:python创建http服务

背景

用java调用dll的时候经常出现 invalid memory access,改用java-Python-dll,

Python通过http服务给java提供功能。

环境

Python3.7

通过 http.server.BaseHTTPRequestHandler 来处理请求,并返回response

打印日志

filename为输入日志名称,默认是同目录下,没有该文件会新创建

filemode a 是追加写的模式,w是覆盖写

import logginglogging.basicConfig(    level=logging.INFO,    fORMat='%(asctime)s %(filename)s[line:%(lineno)d] %(levelname)s %(message)s',    filename="hhh.txt",    filemode='a')logging.info("xxxx")

调用dll

pchar - ctypes.c_char_p

integer 用了 bytes(0),byref(ctypes.c_void_p(0)) 都OK,没有更深入去研究,如有错误请指正。

import ctypesfrom ctypes import *dll = ctypes.windll.LoadLibrary('C:\\xxx\\xxx.dll')print("dll版本号为 : "+ str(dll.GetVersion()) ) name = ctypes.c_char_p(b"GC")            roomno = ctypes.c_char_p(bytes(room.encode("utf-8")))            begintime = ctypes.c_char_p(bytes(begin.encode("utf-8")))            endtime = ctypes.c_char_p(bytes(end.encode("utf-8")))            cardno = ctypes.c_void_p(0)            dll.invoke...

http方案一

要注意 必须有 response = response_start_line + response_headers + “\r\n” + response_body

拼接应答报文后,才能给浏览器正确返回

coding:utf-8import Socketfrom multiprocessing import Processdef handle_client(client_socket):    # 获取客户端请求数据    request_data = client_socket.recv(1024)    print("request:", request_data)    # 构造响应数据    response_start_line = "HTTP/1.1 200 OK\r\n"    response_headers = "Server: My server\r\n"    response_body = "helloWorld!"    response = response_start_line + response_headers + "\r\n" + response_body    print("response:", response)    # 向客户端返回响应数据    client_socket.send(bytes(response, "utf-8"))    # 关闭客户端连接    client_socket.close()if __name__ == "__main__":    server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)    server_socket.bind(("", 8888))    server_socket.listen(120)    print("success")    while True:        client_socket, client_address = server_socket.accept()        print("[%s, %s]用户连接上了" % client_address)        handle_client_process = Process(target=handle_client, args=(client_socket,))        handle_client_process.start()        client_socket.close()

完整代码

另外一种http方式

#-.- coding:utf-8 -.-from http.server import  HTTPServerimport ctypesfrom ctypes import *# HTTPRequestHandler classimport http.serverimport socketserverimport logging# pyinstaller -Fclass testHTTPServer_RequestHandler(http.server.BaseHTTPRequestHandler):    # GET  def do_GET(self):        logging.error('start make ')        str2 =  str(self.path)        print("revice: " + str2)        if "xxx" in str2:            # todo 你的具体业务操作                           if "xxx" in str2:                print("hahaha")                logging.error('hahaha')                # response_body = "0"                self.send_response(200)                # Send headers                self.send_header('Content-type','text/html')                self.end_headers()                # Send message back to client                message = "Hello world!"                # Write content as utf-8 data                self.wfile.write(bytes(message, "utf8"))                return        else:            print("1else")            self.send_response(200)            # Send headers            self.send_header('Content-type', 'text/html')            self.end_headers()            # Send message back to client            message = "Hello world222333!"            # Write content as utf-8 data            self.wfile.write(bytes(message, "utf8"))            return            def run():  print('starting server...')  logging.basicConfig(      level=logging.INFO,      format='%(asctime)s %(filename)s[line:%(lineno)d] %(levelname)s %(message)s',      filename="http_make_card.txt",      filemode='a+'  )  # Server settings  server_address = ('127.0.0.1', 8888)  httpd = HTTPServer(server_address, testHTTPServer_RequestHandler)  print('running server...')  httpd.serve_forever()run()

打包exe

pip install pyinstaller

pyinstaller -F xxx.py 即可,当前目录下生成

No module named ‘http.server'; ‘http' is not a package

当时自己建了一个py叫http,删掉后正常

UnicodeDecodeError: ‘utf-8' codec can't decode byte 0xce in position 130: invalid continuat

另存为utf-8即可

怎么在Python3 中开启自带的http服务

看完上述内容,你们对怎么在Python3 中开启自带的http服务有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注编程网Python频道,感谢大家的支持。

--结束END--

本文标题: 怎么在Python3 中开启自带的http服务

本文链接: https://www.lsjlt.com/news/277154.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 怎么在Python3 中开启自带的http服务
    今天就跟大家聊聊有关怎么在Python3 中开启自带的http服务,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。1.基本方式Python中自带了简单的服务器程序,能较容易地打开服务。...
    99+
    2023-06-15
  • Python3 如何开启自带http服务
    开启Web服务 1.基本方式 Python中自带了简单的服务器程序,能较容易地打开服务。 在python3中将原来的SimpleHTTPServer命令改为了http.server,...
    99+
    2022-11-12
  • win10怎么开启HTTP服务
    要在Windows 10上开启HTTP服务,你可以按照以下步骤进行操作:1. 打开控制面板。你可以通过在开始菜单中搜索"控制面板"来...
    99+
    2023-10-10
    win10
  • 云服务器怎么开启http
    首先,在使用云服务器之前,需要将其配置为自动化控制。配置自动化控制的目的是为了提高系统的安全性和可靠性。云服务器通常具有许多配置选项,可以在控制台上直接访问和设置。以下是如何配置自动化控制: 选择云服务器提供商 首先,需要选择一个可靠...
    99+
    2023-10-27
    服务器 http
  • win10中怎么开启自带虚拟机
    这篇文章将为大家详细讲解有关win10中怎么开启自带虚拟机,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。方法/步骤:点击“开始菜单”图标,在“windows系统”文件夹下打开控制面板,将“查看方式”改为“...
    99+
    2023-06-27
  • win10怎么开启自带的虚拟机
    这篇文章主要介绍了win10怎么开启自带的虚拟机的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇win10怎么开启自带的虚拟机文章都会有所收获,下面我们一起来看看吧。win10如何开启自带的虚拟机首先使用快捷方式...
    99+
    2023-07-02
  • 怎么在Win10系统中开启系统自带录屏功能
    今天就跟大家聊聊有关怎么在Win10系统中开启系统自带录屏功能,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。详细如下:同时按下键盘快捷键Win+i,打开设置界面,选择游戏进入。在游戏...
    99+
    2023-06-07
  • 怎么让redis服务自动开启
    让redis服务自动开启的方法:Windows环境下设置redis服务自动开启示例。快捷键win+r,输入“cmd”打开命令行模式。切换到redis的安装目录。输入以下命令安装redis服务。redis-server --service-i...
    99+
    2022-10-19
  • 怎么在Apache中开启SkyWalking自监控
    这篇文章将为大家详细讲解有关怎么在Apache中开启SkyWalking自监控,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。1. 开启Prometheus遥测数据默认情况下, 遥测功能(te...
    99+
    2023-06-14
  • linux怎么查看开机自启动服务
    在Linux系统中,可以使用以下命令来查看开机自启动的服务:1. 使用`systemctl`命令来查看系统服务的状态:```syst...
    99+
    2023-09-27
    linux
  • 怎么在Win10 中开启无线网络服务
    怎么在Win10 中开启无线网络服务?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。方法步骤打开运行窗口,输入命令“services.msc”,再按下回车键;带服...
    99+
    2023-06-08
  • linux中怎么开启telnet服务
    linux中怎么开启telnet服务,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。方法: 切换至root用户; 如果Linux没有安装telnet服务需要先安装...
    99+
    2023-06-12
  • Centos6.7中怎么怎么开启sshd服务
    Centos6.7中怎么怎么开启sshd服务,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。使用“chkconfig --list | grep sshd”命令来查看sshd服务...
    99+
    2023-06-10
  • 怎么在 IDEA中关闭和开启自动更新
    怎么在 IDEA中关闭和开启自动更新?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。 如何关闭这个烦人的更新提示框呢? ==通常情况下,当我们打开 IDEA 后, ...
    99+
    2023-06-14
  • 怎么使用Linux自带的gssftp服务
    这篇文章给大家分享的是有关怎么使用Linux自带的gssftp服务的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。RedHat和CentOS都自带了一个gssftp服务,使用方式如下:[root@linux&nbs...
    99+
    2023-06-16
  • Win10怎么开启自动升级系统设置?电脑自动更新服务开启方式
    Win10怎么开启自动升级系统设置?一些好朋友发觉计算机不可以自动升级系统软件,实际上这是由于计算机禁止使用了WindowsUpdate服务项,大伙儿只需将其开启就可以,今日我们要详细介绍的是Win10电脑自动更新服务开启方式。按Win+R...
    99+
    2023-07-10
  • linux中怎么设置自启动服务
    本篇文章给大家分享的是有关linux中怎么设置自启动服务,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。  主要用三种方式进行这一操作:  ln -s 在/etc/rc.d/rc...
    99+
    2023-06-14
  • 怎么在Win10系统中打开系统自带的截图工具
    今天就跟大家聊聊有关怎么在Win10系统中打开系统自带的截图工具,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。详细如下:在小娜中搜索“截图工具”。点击打开“截图工具”。点击“新建”选...
    99+
    2023-06-07
  • 阿里云服务器开机自启动怎么设置
    阿里云服务器开机自启动有几种方法,以下是其中一种: 使用 Doze 功能,可以设置阿里云服务器开机启动,并在后续的操作中自动打开,非常方便。 进入 Doze 后,可以根据具体需求进行设置:例如,设置开机自启动的路径、启动时间等等。 如果...
    99+
    2023-10-27
    阿里 服务器
  • 阿里云服务器开机自启动怎么关闭
    首先,在控制面板中打开“阿里云控制中心”,然后选择“管理模板”,进入阿里云控制中心的“系统”页面。在系统页面中,可以看到“系统管理”、“系统设置”、“安全设置”、“云服务器管理”等多个子页面。 在“阿里云控制中心”的“系统管理”页面中,可...
    99+
    2023-10-28
    阿里 服务器
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作