python建立web服务的实例方法

 更新时间:2021年04月14日 08:23:28   作者:小妮浅浅  
在本篇文章里小编给大家整理的是一篇关于python如何建立web服务的相关知识点内容,有需要的朋友们可以参考下。

1、说明

(1)有时候我们需要一种简单快捷的方法来建立RPC服务。只需让程序B调用程序A。

(2)不需要知道任何关于这一点的技术,但我们只需要这么简单的东西。我们可以使用一个协议(相应的Python库实现SimpleXMLRPCServer)来处理这种事情。

2、实例

from SimpleXMLRPCServer import SimpleXMLRPCServer
 
def file_reader(file_name):
    with open(file_name, 'r') as f:
        return f.read()
 
server = SimpleXMLRPCServer(('localhost', 8000))
server.register_introspection_functions()
 
server.register_function(file_reader)
 
server.serve_forever()

实例扩展:

Python 实现一个简单的web服务器

import re
import socket
 
 
def service_cilent(new_socket):
  request = new_socket.recv(1024).decode("utf-8")
  # Python splitlines() 按照行('\r', '\r\n', \n')分隔,返回一个包含各行作为元素的列表,如果参数 keepends 为 False,不包含换行符,如果为 True,则保留换行符。
  request_lines = request.splitlines()
  print(request_lines)
  file_name = ""
  ret = re.match(r"[^/]+(/[^ ]*)", request_lines[0])
  if ret:
    file_name = ret.group(1)
    if file_name == "/":
      file_name = "index.html"
  try:
    f = open(file_name, "rb")
  except:
    response = "HTTP/1.1 404 NOT FOUND\r\n\r\n"
    response += "------file not found-----"
    new_socket.send(response.encode("utf-8"))
  else:
    # 打开文件成功就读文件 然后关闭文件指针
    html_content = f.read()
    f.close()
    # 准备发送给浏览器的数据---header
    response = "HTTP/1.1 200 OK\r\n\r\n"
    # 将response header发送给浏览器
    new_socket.send(response.encode("utf-8"))
    # 将response body发送给浏览器
    new_socket.send(html_content)
  # 关闭套接字
  new_socket.close()
 
 
def main():
  # 创建套接字
  tcp_server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
  # tcp_server_socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
  # 绑定
  tcp_server_socket.bind(("", 7089))
  # 监听套接字
  tcp_server_socket.listen(128)
  while True:
    new_socket, cilent_addr = tcp_server_socket.accept()
    service_cilent(new_socket)
  # 关闭监听套接字
  tcp_server_socket.close()
 
 
if __name__ == '__main__':
  main()

到此这篇关于python建立web服务的实例方法的文章就介绍到这了,更多相关python如何建立web服务内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python查看微信撤回消息代码

    Python查看微信撤回消息代码

    本文给大家分享的是如何使用Python实现查看微信撤回消息的代码,非常的实用,有需要的小伙伴可以参考下
    2018-06-06
  • Python列表的切片实例讲解

    Python列表的切片实例讲解

    在本篇文章里小编给大家分享了关于Python列表的切片的知识点实例,需要的朋友们可以参考下。
    2019-08-08
  • 解决TensorFlow GPU版出现OOM错误的问题

    解决TensorFlow GPU版出现OOM错误的问题

    今天小编就为大家分享一篇解决TensorFlow GPU版出现OOM错误的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-02-02
  • Python时间序列的实现

    Python时间序列的实现

    本文主要介绍了Python时间序列的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-02-02
  • Python实现列表删除重复元素的三种常用方法分析

    Python实现列表删除重复元素的三种常用方法分析

    这篇文章主要介绍了Python实现列表删除重复元素的三种常用方法,结合实例形式对比分析了Python针对列表元素的遍历、判断、转换等相关操作技巧,需要的朋友可以参考下
    2017-11-11
  • Python入门_浅谈逻辑判断与运算符

    Python入门_浅谈逻辑判断与运算符

    下面小编就为大家带来一篇Python入门_浅谈逻辑判断与运算符。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-05-05
  • python中os.path.dirname(path)详细解释和使用示例

    python中os.path.dirname(path)详细解释和使用示例

    这篇文章主要介绍了python中os.path.dirname(path)详细解释和使用示例,os.path.dirname是一个Python函数,用于获取文件路径的目录部分,它通常与os.path.basename结合使用,以分离路径中的目录和文件名,需要的朋友可以参考下
    2025-03-03
  • 详解python解压压缩包的五种方法

    详解python解压压缩包的五种方法

    这里讨论下使用Python解压五种压缩文件,.gz .tar .tgz .zip .rar的相关知识,文中给大家介绍了python实现rar文件解压的方法,感兴趣的朋友跟随小编一起看看吧
    2019-07-07
  • 解决Tensorflow sess.run导致的内存溢出问题

    解决Tensorflow sess.run导致的内存溢出问题

    今天小编就为大家分享一篇解决Tensorflow sess.run导致的内存溢出问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-02-02
  • python+selenium 简易地疫情信息自动打卡签到功能的实现代码

    python+selenium 简易地疫情信息自动打卡签到功能的实现代码

    这篇文章主要介绍了python+selenium 简易地疫情信息自动打卡签到功能的实现代码,代码简单易懂,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-08-08

最新评论