Python中如何实现IP和端口号可配置

在封装python模块为扩展库的过程中,发现python中没有直接读取yaml配置文件的库。
由于只需要简单配置IP和端口号,于是想通过接口来进行设置。

接口方式设置参数

话不多说,先上示例代码。

#!/usr/bin/python
# -*- coding:utf-8 -*-
import json
import sys
import requests
import logging

ip_port = {
    'ip': '127.0.0.1',
    'port': 8080
}
json_header = {
    'Content-Type': 'application/json'
}


# 设置请求IP和端口号
def set_ip_port(ip, port):
    global ip_port
    if ip:
        ip_port['ip'] = ip
    if port:
        ip_port['port'] = port


# 发送post请求
def request_post(api, params, func_name, fail_res):
    req_url_pre = 'https://' + ip_port['ip'] + ':' + str(ip_port['port'])
    req_url = req_url_pre + api
    res = requests.post(req_url, verify=False, data=json.dumps(params), headers=json_header)
    if res.status_code == requests.codes.ok:
        logging.info(func_name + ' request send success...')
        return res.json()
    else:
        logging.error(func_name + ' request send failed...')
        fail_res['errCode'] = res.status_code
        return json.dumps(fail_res, ensure_ascii=False)

先给变量一个默认值,然后通过global将变量声明为全局变量,这样就能通过参数参入的方式需要修改的变量值。

配置文件方式
XML文件

读取xml文件的库是python内置的,可以通过xml.etree.ElementTree结合xpath语法读取属性值。
例如,有xml文件配置如下:

<?xml version="1.0" encoding="utf-8" ?>
<server>
	<ip>127.0.0.1</ip>
	<port>8080</port>
</server>

读取配置文件:

#!/usr/bin/python3
# -*- coding: UTF-8 -*-
import xml.etree.ElementTree as etree

tree = etree.parse("conf.xml")
# 获取根节点
root = tree.getroot()
print('root.tag', root.tag)
print('ip', root[0].text)
print('port', root[1].text)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值