返回顶部
首页 > 资讯 > 后端开发 > Python >Python SDK怎么实现私服上传下载
  • 373
分享到

Python SDK怎么实现私服上传下载

2023-06-21 22:06:14 373人浏览 薄情痞子

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

摘要

本篇内容介绍了“python SDK怎么实现私服上传下载”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!编写Python SDK代码

本篇内容介绍了“python SDK怎么实现私服上传下载”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

编写Python SDK代码

工程目录结构

├──── easyHttp                   // SDK目录    │   ├── __init__.py           │   ├── https.py          // http工具类    ├── tests                      // 单元测试目录    │   ├── __init__.py           │   ├── test_https.py      // http单元测试    ├── README.md                 ├── requirements.txt        //依赖包    └── setup.py              //setuptools安装

requirements.txt

requests==2.24.0

https.py

# -*- coding:utf8 -*-"""@Project: easyhttp@File: https.py@Version: v1.0.0@Time: 2020/6/24 17:22@Author: guodong.li@Description: http"""from typing import Optionalimport requestsimport loggingfrom requests import Responselogging.basicConfig(fORMat='%(asctime)s - %(pathname)s[line:%(lineno)d] - %(levelname)s: %(message)s',                    level=logging.DEBUG)class HttpUtils:    headers = {        "Content-Type": "application/JSON"    }    # http://10.193.199.44:5610/api/v1/manual/sleep?time=0    @staticmethod    def base_get(base_path: str='', detail_path: str='', params: Optional[dict]=None)-> Response:        """            GET请求        :param base_path: 域名        :param detail_path: 接口详情        :param params: 参数        :return:        """        logging.info("请求方式:GET, 请求url:  %s  , 请求参数: %s " % (base_path + detail_path, params))        response = requests.get(base_path + detail_path, params=params)        logging.info("请求方式:GET, 请求url:  %s  , 请求参数: %s , 结果:%s" % (base_path + detail_path, params, response))        return response    @claSSMethod    def base_post(cls, base_path: str='', detail_path: str='', params: Optional[dict]=None)-> Response:        """            POST请求        :param cls:        :param base_path: 域名        :param detail_path: 接口详情        :param params: 参数        :return:        """        logging.info("请求方式:POST, 请求url:  %s  ,请求参数: %s " % (base_path + detail_path, params))        response = requests.post(base_path + detail_path, data=params, headers=cls.headers)        logging.info("请求方式:POST, 请求url:  %s  , 请求参数: %s , 结果:%s" % (base_path + detail_path, params, response))        return response

test_https.py

import requestsimport loggingfrom easyhttp.https import HttpUtilslogging.basicConfig(format='%(asctime)s - %(pathname)s[line:%(lineno)d] - %(levelname)s: %(message)s',                    level=logging.DEBUG)r = requests.get("http://xxx.xxx.xxx.xxx:5610/api/v1/manual/sleep?time=0")logging.info(r)  # <Response [200]>logging.info(type(r))  # <class 'requests.models.Response'>logging.info(r.status_code)  # 200

代码写完了之后,打包并上传到私服。

打包并上传私服

安装twine包

pip install twine

编写构建工具setup.py进行打包

# -*- coding:utf8 -*-"""@author: guodong.li@email: liguodongiot@163.com@time: 2019/7/31 14:04@file: setup.py@desc: """# 引入构建包信息的模块from setuptools import setup, find_packagestry:  # for pip >= 10    from pip._internal.req import parse_requirements    from pip._internal.network.session import PipSessionexcept ImportError:  # for pip <= 9.0.3    from pip.req import parse_requirements    from pip.download import PipSession# parse_requirements() returns generator of pip.req.InstallRequirement objectsinstall_reqs = parse_requirements('requirements.txt', session=PipSession())# reqs is a list of requirement# e.g. ['Django==1.5.1', 'mezzanine==1.4.6']reqs = [str(ir.req) for ir in install_reqs]# 定义发布的包文件的信息setup(    name="easyhttp",  # 发布的包的名称    version="1.0.0",  # 发布包的版本序号    description="easy use http",  # 发布包的描述信息    author="guodong.li",  # 发布包的作者信息    author_email="liguodongiot@163.com",  # 作者的联系邮箱    packages=["easyhttp"],    # include_package_data=True,  # include everything in source control    # ...but exclude README.txt from all packages    exclude_package_data={'': ['README.md'],                          'tests': ['*.py']},    install_requires=reqs,)

setup.py各参数简单介绍如下:

  • –name 包名称

  • –version (-V) 包版本

  • –author 程序的作者

  • –author_email 程序的作者的邮箱地址

  • –maintainer 维护者

  • –maintainer_email 维护者的邮箱地址

  • –url 程序的官网地址

  • –license 程序的授权信息

  • –description 程序的简单描述

  • –long_description 程序的详细描述

  • –platforms 程序适用的软件平台列表

  • –classifiers 程序的所属分类列表

  • –keyWords 程序的关键字列表

  • –packages 需要处理的包目录(包含__init__.py的文件夹)

  • –py_modules 需要打包的python文件列表

  • –download_url 程序的下载地址

  • –data_files 打包时需要打包的数据文件,如图片,配置文件等

  • –scripts 安装时需要执行的脚步列表

  • –package_dir 告诉setuptools哪些目录下的文件被映射到哪个源码包。一个例子:package_dir = {'': ‘lib'},表示“root package”中的模块都在lib 目录中。

  • –requires 定义依赖哪些模块

  • –provides 定义可以为哪些模块提供依赖

  • –find_packages() 对于简单工程来说,手动增加packages参数很容易,刚刚我们用到了这个函数,它默认在和setup.py同一目录下搜索各个含有 init.py的包。其实我们可以将包统一放在一个src目录中,另外,这个包内可能还有aaa.txt文件和data数据文件夹。还可以排除一些特定的包find_packages(exclude=[".tests", ".tests.", "tests.", “tests”])

  • –install_requires = [“requests”] 需要安装的依赖包

  • –entry_points 动态发现服务和插件

新增.pypirc文件

touch ~/.pypirc

在.pypirc文件添加如下配置

[distutils]index-servers =    pypi    nexus [pypi]repository:https://pypi.python.org/pypiusername:your_usernamepassword:your_password  [nexus]repository=http://192.168.12.196:8081/repository/mypypi-hosted/username=your_usernamepassword=your_password

打包并上传至私服仓库nexus

python setup.py sdist bdist_wheel upload -r nexus

或者打包命令和上传命令分开操作

打包命令

python setup.py sdist bdist_wheel

上传命令

twine upload -r nexus dist/* # -r 可以选择仓库地址

创建虚拟环境,并下载私服包进行验证

创建虚拟环境

virtualenv -p /usr/bin/python venv

激活虚拟环境

source venv/bin/activate

下载包

pip  install easyhttp==1.0.0 -i http://your_username:your_password@192.168.12.196:8081/repository/mypypi-hosted/simple/  --trusted-host 192.168.12.196

进入python shell环境

python

代码验证

>>> from pai.utils.https import HttpUtils>>> import logging>>> logging.basicConfig(format='%(asctime)s - %(pathname)s[line:%(lineno)d] - %(levelname)s: %(message)s',level=logging.INFO)>>> r = requests.get("http://10.xxx.xxx.xxx:5610/api/v1/manual/sleep?time=0")2020-07-02 11:31:50,903 - /root/python/20200702/venv/lib/python3.7/site-packages/urllib3/connectionpool.py[line:230] - DEBUG: Starting new HTTP connection (1): 10.xxx.xxx.xxx:56102020-07-02 11:31:51,065 - /root/python/20200702/venv/lib/python3.7/site-packages/urllib3/connectionpool.py[line:442] - DEBUG: http://10.xxx.xxx.xxx:5610 "GET /api/v1/manual/sleep?time=0 HTTP/1.1" 200 None>>> logging.info(r)  # <Response [200]>2020-07-02 11:32:15,420 - <stdin>[line:1] - INFO: <Response [200]>>>> >>> logging.info(type(r))  # <class 'requests.models.Response'>2020-07-02 11:32:27,371 - <stdin>[line:1] - INFO: <class 'requests.models.Response'>>>> logging.info(r.status_code)  # 2002020-07-02 11:32:39,069 - <stdin>[line:1] - INFO: 200

“Python SDK怎么实现私服上传下载”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

--结束END--

本文标题: Python SDK怎么实现私服上传下载

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

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

猜你喜欢
  • Python SDK怎么实现私服上传下载
    本篇内容介绍了“Python SDK怎么实现私服上传下载”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!编写Python SDK代码...
    99+
    2023-06-21
  • Python SDK实现私服上传下载的示例
    目录编写Python SDK代码打包并上传私服创建虚拟环境,并下载私服包进行验证编写Python SDK代码 工程目录结构 ├──── easyhttp ...
    99+
    2024-04-02
  • python实现FTP上传下载
    要求:支持多用户在线的FTP程序 要求:1、用户加密认证2、允许同时多用户登录3、每个用户有自己的家目录 ,且只能访问自己的家目录4、对用户进行磁盘配额,每个用户的可用空间不同5、允许用户在ftp server上随意切换目录6、允许用户查看...
    99+
    2023-01-31
    上传下载 python FTP
  • springMVC怎么实现文件上传和下载
    本篇内容介绍了“springMVC怎么实现文件上传和下载”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!本文实例为大家分享了springMVC...
    99+
    2023-06-20
  • Java怎么实现HDFS文件上传下载
    今天小编给大家分享一下Java怎么实现HDFS文件上传下载的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。pom.xml配置&...
    99+
    2023-07-02
  • SpringMVC文件上传与下载怎么实现
    这篇文章主要介绍“SpringMVC文件上传与下载怎么实现”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“SpringMVC文件上传与下载怎么实现”文章能帮助大家解决问题。前言文件上传是项目开发中最常...
    99+
    2023-07-04
  • nodejs怎么连接ftp实现上传下载
    这篇文章主要介绍“nodejs怎么连接ftp实现上传下载”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“nodejs怎么连接ftp实现上传下载”文章能帮助大家解决问题。依赖//ftp 模块是...
    99+
    2023-07-06
  • Servlet文件的上传与下载怎么实现
    本文小编为大家详细介绍“Servlet文件的上传与下载怎么实现”,内容详细,步骤清晰,细节处理妥当,希望这篇“Servlet文件的上传与下载怎么实现”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。文件的上传和下载1...
    99+
    2023-07-02
  • Java实现ftp的上传、下载
    ftp登录命令: windows环境下登录:文件管理资源的地址栏中输入“ftp://ip:port”,然后根据提示输入账号、密码。linux环境下登录:ftp ip,然后根据提示输入账号、密码,lin...
    99+
    2023-09-26
    java linux 服务器
  • SpringMVC实现上传下载文件
    本文实例为大家分享了SpringMVC实现上传下载文件的具体代码,供大家参考,具体内容如下 一、SpringMVC专门提供了CommonsMultipartResolver组件用于文...
    99+
    2024-04-02
  • Python使用sftp实现上传和下载功能
    在Python中可以使用paramiko模块中的sftp登陆远程主机,实现上传和下载功能。 1.功能实现 1、根据输入参数判断是文件还是目录,进行上传和下载 2、本地参数local需...
    99+
    2024-04-02
  • ASP.NET Core中怎么实现文件上传与下载
    这篇文章给大家介绍ASP.NET Core中怎么实现文件上传与下载,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。1.使用模型绑定上传文件(官方例子)官方机器翻译的地址:https://docs.microsoft.co...
    99+
    2023-06-19
  • 怎么用Spring Cloud Feign实现文件上传下载
    这篇“怎么用Spring Cloud Feign实现文件上传下载”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看...
    99+
    2023-06-29
  • Java怎么实现FTP的上传与下载功能
    这篇文章主要讲解了“Java怎么实现FTP的上传与下载功能”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Java怎么实现FTP的上传与下载功能”吧!JAVA操作FTP服务器,只需要创建一个F...
    99+
    2023-06-29
  • SpringBoot怎么实现文件上传与下载功能
    这篇“SpringBoot怎么实现文件上传与下载功能”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“SpringBoot怎么实...
    99+
    2023-07-06
  • java高并发文件上传下载怎么实现
    实现高并发的文件上传下载可以通过以下几个步骤: 使用多线程或线程池:可以使用多个线程或线程池来处理文件上传下载请求,每个线程负责...
    99+
    2023-10-27
    java
  • SpringMVC实现文件上传与下载
    本文实例为大家分享了SpringMVC实现文件上传与下载的具体代码,供大家参考,具体内容如下 0.环境准备 1.maven依赖 <dependencies> ...
    99+
    2024-04-02
  • springMVC实现文件上传和下载
    本文实例为大家分享了springMVC实现文件上传和下载的具体代码,供大家参考,具体内容如下 1准备工作 web.xml文件导入DispatcherServlet,Character...
    99+
    2024-04-02
  • vue实现文件上传和下载
    本文实例为大家分享了vue实现文件上传和下载的具体代码,供大家参考,具体内容如下 文件上传 vue中的文件上传主要分为两步:前台获取到文件和提交到后台 获取文件 前台获取文件,主要是...
    99+
    2024-04-02
  • Go实现文件上传和下载
    本文实例为大家分享了Go实现文件上传和下载的具体代码,供大家参考,具体内容如下 一.文件上传 文件上传:客户端把上传文件转换为二进制流后发送给服务器,服务器对二进制流进行解析 HTM...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作