python web.py+requests 视频接收与发送

2023-10-27

         web.py是python中一个相对容易上手的web服务器搭建工具。

1 安装方式

        web.py可以直接通过pip install 的方式安装即可,即:

pip install web.py

2 服务器

        2.1 完整程序

import web              #web.py

urls = (
        '/server' , 'server', 
        '/.*', 'notfound'     #localhost:port/其他任意界面,访问notfound类
        )

class MyApplication(web.application):
    def run(self, port=8080, *middleware):
        func = self.wsgifunc(*middleware)
        return web.httpserver.runsimple(func, ('0.0.0.0', port))

class server:
    def __init__(self):
        self.return_msg = {'errorCode': 0, 'msg': '系统正常!'}     

    def POST(self):                    #POST处理方式与GET一致
        content  = web.input()
        print('content keys: ', content.keys())
        print('收到消息:', content.imagename.decode(), content.imagetype.decode(), content.key1.decode())
        savedir = './'
        fout = open(savedir + '/' + 'test_recv.mp4', 'wb')
        fout.write(content.image)
        fout.close()
        return str(self.return_msg).replace('\'', '\"')
    
class notfound:
    def GET(self):
        print('--from notfound')
        return '404 not found'
    def POST(self):
        print('--from notfound')
        return '404 not found'
     

if __name__ == "__main__":
    app = MyApplication(urls ,globals())
    app.run(port=8091)

        2.2 url页面与响应类

        url页面是指网页访问地址,响应类是指定页面做出的响应。如上所示,url页面用一个小括号元组形式来定义。'/server', 'server' 表示url地址为127.0.0.1:port/server或者localhost:port/server页面对应函数处理类为class server。'/.*', 'notfound'表示除了server页面之外,且在指定端口port下的地址时均由class notfound类来表示。可以按照上述方法,定义多个页面。

        在响应函数类处理消息过程中,POST与GET处理方法基本一致。

urls = (
        '/server' , 'server', 
        '/.*', 'notfound'     #localhost:port/其他任意界面,访问notfound类
        )

        2.3 自定义端口

         web.py默认端口为8080端口,但是有时候8080已经被占用了,所以需要自定义端口。

        自定义端口的方式可以用两种方式来实现,第一种是在命令行运行脚本,采用如下方式:

python main.py 8090

        另一种方式是按照上述代码的方式,重载web.application类。

class MyApplication(web.application):
    def run(self, port=8080, *middleware):
        func = self.wsgifunc(*middleware)
        return web.httpserver.runsimple(func, ('0.0.0.0', port))
if __name__ == "__main__":
    app = MyApplication(urls ,globals())
    app.run(port=8090)

3 客户端

        3.1 完整程序

# -*- coding: utf-8 -*-
"""
Created on Tue Aug 30 20:58:41 2022

@author: Administrator
"""

import requests

def client_post(url, data):
    rep = requests.post(url, files=files)
    return rep.text 

if __name__ == '__main__':
    files = {
            "imagename":"videdo server demo",
            "image":("1.mp4",open('E:/1.mp4','rb'),"application/octet-stream"),
            "imagetype":"jpg",
            "key1":"key1 content"
            }
    url = 'http://127.0.0.1:8091/server'
    res = client_post(url, files)
    print('127.0.0.1:8091/server(返回结果):', res)

4 测试结果

        python客户端运行结果如下:

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

python web.py+requests 视频接收与发送 的相关文章

随机推荐

  • STM32G030Cx HAL库Flash擦除或编程操作出错的解决办法

    STM32G030Cx HAL库Flash擦除与编程操作 例程说明 一 宏定义及变量 二 获取页 三 写数据 双字 四 调用验证 例程说明 STM32G0芯片对Flash操作容易出错 经常出现擦除失败或编程失败的情况 故有此记录 STM32
  • Jetbrains系列开发工具日常配置与使用

    文章目录 IntelliJ IDEA 各种常用配置 常见问题 PyCharm 常见问题 IntelliJ IDEA IDEA的确是Java开发利器 之前一直用Eclipse 后来实习单位都用IDEA 就慢慢转了 开始还不习惯 后来就不禁被其
  • 3.1 ZK客户端创建节点源码解析上(基于NIO)

    ZK客户端创建节点源码解析上 前言 1 为什么能用来做注册中心 2 创建节点 2 1 ZooKeeper create 方法 2 2 ClientCnxn queuePacket 方法 2 3 ClientCnxnSocketNIO doT
  • 1003 我要通过 (20 分)

    题目 题目链接 题解 实现题 理解题目表达的意思 字符串中必须仅有 P A T 这三种字符 不可以包含其它字符 可以在 PAT 左右两侧加任意个相同数量的 A 比如 PAT APATA AAPATAA 均是正确的 但 APAT PATA A
  • 比较删除某个变量后的模型与原模型的差异(使用F检验,R语言)

    比较删除某个变量后的模型与原模型的差异 使用F检验 R语言 在统计建模中 我们经常需要评估不同变量对模型的影响程度 其中一个常见的问题是 当我们删除某个变量后 模型的性能是否会发生显著变化 为了回答这个问题 我们可以使用F检验来比较删除某个
  • C++实现根据类名动态生成类对象

    在开发后台服务的过程中 我们常常需要从数据库中取数据 并将数据缓存在本地中 另外 我们的服务还需要有更新数据的能力 包括定时的主动更新以及数据库数据更新时服务收到通知的被动更新 之前在需要用到以上功能的时候 模仿着组内通用的数据Cache部
  • Keil写STM32程序.axf: Error: L6218E: Undefined symbol HAL_RTC_Init (referred from rtc.o)报错解决办法

    在写RTC的程序时 报如下的错误 Output atk f103 axf Error L6218E Undefined symbol HAL RTC Init referred from rtc o 显示没有定义 网上有很多解决办法 这里提
  • 【Docker 1(2),分享一波阿里、字节、腾讯、美团等精选大厂面试题

    8 卸载 yum remove docker ce docker ce cli containerd io rm rf var lib docker rm rf var lib containerd 三 run的流程和docker原理 1
  • 还在愁csdn进不去吗,看这里

    浏览器其他页面都可以发送请求进入 唯独www csdn net进不去 一直处于访问不了状态 目录 1 DNS的问题 2 关闭防火墙 3 清除浏览器数据 4 关闭代理服务器 5 VPN 6 切换其他网络 相信很多的网页是这样的 然后打开Win
  • 定时器每隔n秒请求n条数据,setInterval分批请求数据

  • 前端测试——端对端测试框架 Playwright 总结

    在进行前端测试前 我们需要明确我们需要怎样的前端测试 前端测试类型总结 前端应用测试分为几种常见类型 端到端 e2e 一个辅助机器人 表现得像一个用户 在应用程序周围点击 并验证其功能是否正确 常见的测试框架是 Playwright 单元
  • 引导过程以及服务控制

    目录 服务器开机过程 开机自检 BIOS MBR主引导程序 grub菜单 加载内核 init初始化 步骤说明 初步检测 mbr引导 加载linux内核 驱动系统 系统初始化 命令 控制类型 运行级别相关命令 运行级命令 服务器开机过程 开机
  • 管理科学与工程 国内核心期刊 国外a刊及SCI

    国内 管理科学与工程 管理科学学报 A 匿名审稿 绝对牛刊 不比一般的SCi期刊的质量差 系统工程理论与实践 A 实名审稿 关系稿很多 尤其是挂编委的文章很多 但质量尚可 系统工程学报 A 匿名审稿 侧重方法论多写 编辑部的老师特好 中国管
  • unity 判断是否点击在某个面板身上

    using System Collections using System Collections Generic using UnityEngine public class TestImage MonoBehaviour Use thi
  • 随机变量序列的收敛性质分类

    分类 X n 趋向某个固定的数 X n 趋向某个确定函数的输出值 X n 的概率分布越来越接近某个特定的随机变量的概率分布 X n 和某个特定随机变量的差别的平均值 数学期望值 趋向于0 X n 和某个特定随机变量的差别的方差趋向于0 约束
  • 面试题:String 和 StringBuilder、StringBuffer 的区别?

    Java 平台提供两种类型的字符串 String 和 StringBuffer StringBuilder 它们可以存储和操作字符串 其中String是只读字符串 也就意味着String 引用的字符串内容是不能被改变的 而StringBuf
  • 多益网络校招笔试题

    马上要参加多益的笔试了 所以在网上找了一下多益的笔试题 原文 我感觉我想出了一个更简单的方法 时间复杂度O 1 如果有问题希望大家及时指正 题目如下 给定一个数x x gt 5 找到该数与3 4之间的关系 关系如下 x 3 n 4 m 然后
  • 最近我在忙什么之【毕业设计大纲】

    毕业设计工作日志 误差校正仿真 理论部分 Stewart平台位姿误差分析与标定研究 仿真部分 基于Matlab的全局搜索 单通道控制算法设计 滑模论文 根据论文仿真 填入参数 获取具体的传递函数 改进滑模的论文 扰动及对照实验设计 稳定平台
  • Ubuntu下使用MySQL(C++,Cmake)

    安装需要使用的库 sudo apt get install libmysqlclient dev 头文件 usr include mysql mysql的头文件在这里 引入头文件 include mysql h 如果找不到就 include
  • python web.py+requests 视频接收与发送

    web py是python中一个相对容易上手的web服务器搭建工具 1 安装方式 web py可以直接通过pip install 的方式安装即可 即 pip install web py 2 服务器 2 1 完整程序 import web