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实现批量把SVG格式转成png、pdf格式的代码分享
Aug 21 Python
Python max内置函数详细介绍
Nov 17 Python
使用pygame模块编写贪吃蛇的实例讲解
Feb 05 Python
python实现类之间的方法互相调用
Apr 29 Python
在python中使用requests 模拟浏览器发送请求数据的方法
Dec 26 Python
python简单验证码识别的实现方法
May 10 Python
Python编写通讯录通过数据库存储实现模糊查询功能
Jul 18 Python
一文了解python 3 字符串格式化 F-string 用法
Mar 04 Python
Python3 filecmp模块测试比较文件原理解析
Mar 23 Python
Python3 ffmpeg视频转换工具使用方法解析
Aug 10 Python
如何利用opencv判断两张图片是否相同详解
Jul 07 Python
Python实现Excel文件的合并(以新冠疫情数据为例)
Mar 20 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
php5.3提示Function ereg() is deprecated Error问题解决方法
2014/11/12 PHP
php解决DOM乱码的方法示例代码
2016/11/20 PHP
JavaScript中的bold()方法使用详解
2015/06/08 Javascript
JS+CSS实现下拉列表框美化效果(3款)
2015/08/15 Javascript
js实现带圆角的多级下拉菜单效果
2015/08/28 Javascript
js变量提升深入理解
2016/09/16 Javascript
js HTML5上传示例代码完整版
2016/10/10 Javascript
详解ECharts使用心得总结
2016/12/06 Javascript
详解js的延迟对象、跨域、模板引擎、弹出层、AJAX【附实例下载】
2016/12/19 Javascript
基于js的变量提升和函数提升(详解)
2017/09/17 Javascript
基于node.js实现微信支付退款功能
2017/12/19 Javascript
原生js实现form表单序列化的方法
2018/08/02 Javascript
fetch 如何实现请求数据
2018/12/20 Javascript
Layui动态生成select下拉选择框不显示的解决方法
2019/09/24 Javascript
nodeJs的安装与npm全局环境变量的配置详解
2020/01/06 NodeJs
JavaScript语句错误throw、try及catch实例解析
2020/08/18 Javascript
vue.js实现点击图标放大离开时缩小的代码
2021/01/27 Vue.js
[02:45]2016年中国刀塔全程回顾,完美“圣”典即将上演
2016/12/15 DOTA
Python写的创建文件夹自定义函数mkdir()
2014/08/25 Python
Python的面向对象思想分析
2015/01/14 Python
Python实现将doc转化pdf格式文档的方法
2018/01/19 Python
numpy判断数值类型、过滤出数值型数据的方法
2018/06/09 Python
Python修改文件往指定行插入内容的实例
2019/01/30 Python
python numpy实现文件存取的示例代码
2019/05/26 Python
django连接oracle时setting 配置方法
2019/08/29 Python
Python3.5 win10环境下导入kera/tensorflow报错的解决方法
2019/12/19 Python
Python hmac模块使用实例解析
2019/12/24 Python
python boto和boto3操作bucket的示例
2020/10/30 Python
html通过canvas转成base64的方法
2019/07/18 HTML / CSS
马来西亚网上美容店:Hermo.my
2017/11/25 全球购物
自我推荐信范文
2014/05/09 职场文书
北京申奥口号
2014/06/19 职场文书
小学校园广播稿(3篇)
2014/09/19 职场文书
早读课迟到检讨书
2014/09/25 职场文书
渠道运营商合作协议书范本
2014/10/06 职场文书
2014年流动人口工作总结
2014/11/26 职场文书