Django封装交互接口代码


Posted in Python onJuly 12, 2020

我就废话不多说了,大家还是直接看代码吧~

# !/usr/bin/env python 
# -*- coding:utf-8 -*-
__author__ = '_X.xx_'
__date__ = '2018/7/18 16:44'
 
from django.http import JsonResponse
 
class HttpCode(object):
 ok = 200
 paramserror = 400
 unantu = 401
 methoderror = 405
 servererror = 500
 
def ok():
 return result()
 
def result(code=HttpCode.ok, message='', data=None, kwargs=None):
 json_dict = {'code': code, 'message': message, 'data': data}
 if kwargs and isinstance(kwargs, dict) and kwargs.keys():
  json_dict.update(kwargs)
 return JsonResponse(json_dict)
 
def params_error(message='', data=None):
 return result(code=HttpCode.paramserror, message=message, data=data)
 
def unauth(message='', data=None):
 return result(code=HttpCode.unantu, message=message, data=data)
 
def method_error(message='', data=None):
 return result(code=HttpCode.methoderror, message=message, data=data)
 
def server_error(message='', data=None):
 return result(code=HttpCode.servererror, message=message, data=data)

补充知识:python部署galery集群

galery.py文件内容

import pexpect
import os
import configparser

HOSTNAME_DB1='db1'
HOSTNAME_DB2='db2'
HOSTNAME_DB3='db3'
DB1 = '192.168.254.24'
DB2 = '192.168.254.27'
DB3 = '192.168.254.36'
PORT = 22
USERNAME = 'root'
PASSWORD = 'root'

server3_cnf = 'sed -i "s/wsrep_node_name = db1/wsrep_node_name = db3/g" /etc/my.cnf.d/server.cnf;sed -i "s/wsrep_node_address = %s/wsrep_node_address = %s/g" /etc/my.cnf.d/server.cnf' % (DB1,DB3)
server2_cnf = 'sed -i "s/wsrep_node_name = db1/wsrep_node_name = db3/g" /etc/my.cnf.d/server.cnf;sed -i "s/wsrep_node_address = %s/wsrep_node_address = %s/g" /etc/my.cnf.d/server.cnf' % (DB1,DB3)
def config_parse():
 config = configparser.ConfigParser()
 config.read("/etc/my.cnf.d/server.cnf", encoding="utf-8")
 config.set('galera','wsrep_on','ON')
 config.set('galera','wsrep_provider','/usr/lib64/galera/libgalera_smm.so')
 config.set('galera','wsrep_cluster_address','"gcomm://%s,%s,%s"' % (DB1, DB2, DB3))
 config.set('galera','wsrep_node_name','%s' % HOSTNAME_DB1 )
 config.set('galera','wsrep_node_address','%s' % DB1)
 config.set('galera','binlog_format','row')
 config.set('galera','default_storage_engine','InnoDB')
 config.set('galera','innodb_autoinc_lock_mode','2')
 config.set('galera','wsrep_slave_threads','1')
 config.set('galera','innodb_flush_log_at_trx_commit','1')
 config.set('galera','innodb_buffer_pool_size','120M')
 config.set('galera','wsrep_sst_method','rsync')
 config.set('galera','wsrep_causal_reads','ON')
 config.write(open('/etc/my.cnf.d/server.cnf','w'))
def cp_server_cnf():
 child1 = pexpect.spawn('scp /etc/my.cnf.d/server.cnf %s@%s:/etc/my.cnf.d/server.cnf' % (USERNAME,DB2))
 child1.expect('password:')
 child1.sendline(PASSWORD)
 child1.interact()
 child1.close()
 child2 = pexpect.spawn('scp /etc/my.cnf.d/server.cnf %s@%s:/etc/my.cnf.d/server.cnf' % (USERNAME,DB3))
 child2.expect('password:')
 child2.sendline(PASSWORD)
 child2.interact()

 child2.close()
def conn_db(ip,cnf):
 child3 = pexpect.spawn('ssh %s@%s' % (USERNAME, ip))
 child3.expect('password:')
 child3.sendline('root')
 child3.expect('#')
 child3.sendline(cnf)
 child3.expect('#')
 child3.sendline('systemctl restart mariadb > /dev/null')
 child3.sendline('exit')
 child3.interact()
 child3.close()
def init_cmd():
 res1 = os.system('service mariadb stop')
 res2 = os.system('mysqld_safe --wsrep_cluster_address=gcomm://%s,%s,%s >/dev/null &' % (DB1, DB2, DB3))
 res3 = os.system('galera_new_cluster &>/dev/null')
 if res2 == 0:
  print('galera初始化完成')
  if res3 == 0:
   print('galera集群已经启动')
  else:
   print('galera集群启动失败')
 else:
  print('galera初始化失败!')
def main():
 config_parse()
 cp_server_cnf()
 init_cmd()
 conn_db(DB2,server2_cnf)
 conn_db(DB3,server3_cnf)

if __name__ == '__main__':
 main()

以上这篇Django封装交互接口代码就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python内置函数bin() oct()等实现进制转换
Dec 30 Python
python操作日期和时间的方法
Mar 11 Python
Python字符串中查找子串小技巧
Apr 10 Python
关于python pyqt5安装失败问题的解决方法
Aug 08 Python
Python 在字符串中加入变量的实例讲解
May 02 Python
Python实现的求解最小公倍数算法示例
May 03 Python
python文件写入write()的操作
May 14 Python
Python提取转移文件夹内所有.jpg文件并查看每一帧的方法
Jun 27 Python
Jupyter Notebook打开任意文件夹操作
Apr 14 Python
不到20行实现Python代码即可制作精美证件照
Apr 24 Python
Python Mock模块原理及使用方法详解
Jul 07 Python
Python Selenium XPath根据文本内容查找元素的方法
Dec 07 Python
在django中实现choices字段获取对应字段值
Jul 12 #Python
利用python对mysql表做全局模糊搜索并分页实例
Jul 12 #Python
django美化后台django-suit的安装配置操作
Jul 12 #Python
浅谈matplotlib 绘制梯度下降求解过程
Jul 12 #Python
使用matplotlib的pyplot模块绘图的实现示例
Jul 12 #Python
django template实现定义临时变量,自定义赋值、自增实例
Jul 12 #Python
Django后端分离 使用element-ui文件上传方式
Jul 12 #Python
You might like
用PHP实现的四则运算表达式计算实现代码
2011/08/02 PHP
PHP中round()函数对浮点数进行四舍五入的方法
2014/11/19 PHP
遍历指定目录,并存储目录内所有文件属性信息的php代码
2016/10/28 PHP
PHP全功能无变形图片裁剪操作类与用法示例
2017/01/10 PHP
TP5框架简单登录功能实现方法示例
2019/10/31 PHP
JScript中使用ADODB.Stream判断文件编码的代码
2008/06/09 Javascript
jquery 插件之仿“卓越亚马逊”首页弹出菜单效果
2008/12/25 Javascript
jquery如何实现锚点链接之间的平滑滚动
2013/12/02 Javascript
jQuery+jsp实现省市县三级联动效果(附源码)
2015/12/03 Javascript
JS选取DOM元素的简单方法
2016/07/08 Javascript
JavaScript性能优化总结之加载与执行
2016/08/11 Javascript
关于vue-router的beforeEach无限循环的问题解决
2017/09/09 Javascript
自定义vue组件发布到npm的方法
2018/05/09 Javascript
微信小程序动态增加按钮组件
2018/09/14 Javascript
如何解决webpack-dev-server代理常切换问题
2019/01/09 Javascript
如何使用CSS3+JQuery实现悬浮墙式菜单
2019/06/18 jQuery
基于JavaScript获取base64图片大小
2019/10/18 Javascript
python访问sqlserver示例
2014/02/10 Python
详解Python发送邮件实例
2016/01/10 Python
详解python3百度指数抓取实例
2016/12/12 Python
Python操作mongodb的9个步骤
2018/06/04 Python
Python 常用模块 re 使用方法详解
2019/06/06 Python
python做接口测试的必要性
2019/11/20 Python
Python selenium自动化测试模型图解
2020/04/15 Python
如何把外网python虚拟环境迁移到内网
2020/05/18 Python
python中if及if-else如何使用
2020/06/02 Python
Python面向对象多态实现原理及代码实例
2020/09/16 Python
详解html2canvas截图不能截取圆角图片的解决方案
2018/01/30 HTML / CSS
BONIA波尼亚新加坡官网:皮革手袋,鞋类和配件
2016/08/25 全球购物
英国顶级足球鞋的领先零售商:Lovell Soccer
2019/08/27 全球购物
初中优秀教师事迹材料
2014/08/18 职场文书
党支部工作总结2015
2015/04/01 职场文书
史上最全的军训拉歌口号
2015/12/25 职场文书
八年级数学教学反思
2016/02/17 职场文书
从结婚开始的恋爱故事。小说《我的美好婚事》TV动画化决定
2022/04/07 日漫
python自动获取微信公众号最新文章的实现代码
2022/07/15 Python