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 元组(Tuple)操作详解
Mar 11 Python
Python中的map、reduce和filter浅析
Apr 26 Python
python实现微信跳一跳辅助工具步骤详解
Jan 04 Python
python3 打开外部程序及关闭的示例
Nov 06 Python
Python中GeoJson和bokeh-1的使用讲解
Jan 03 Python
简单了解python的break、continue、pass
Jul 08 Python
python如何使用socketserver模块实现并发聊天
Dec 14 Python
python标准库os库的函数介绍
Feb 12 Python
PyQt5中QTableWidget如何弹出菜单的示例代码
Feb 23 Python
详解使用python3.7配置开发钉钉群自定义机器人(2020年新版攻略)
Apr 01 Python
Python读写锁实现实现代码解析
Nov 28 Python
matplotlib部件之矩形选区(RectangleSelector)的实现
Feb 01 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生成静态html文件的三种方法
2013/06/18 PHP
php计算整个mysql数据库大小的方法
2015/06/19 PHP
CI框架常用方法小结
2016/05/17 PHP
php基于openssl的rsa加密解密示例
2016/07/11 PHP
thinkPHP5框架分页样式类完整示例
2018/09/01 PHP
jquery选择器之属性过滤选择器详解
2014/01/27 Javascript
JQuery select(下拉框)操作方法汇总
2015/04/15 Javascript
node.js操作mongodb学习小结
2015/04/25 Javascript
AngularJS中实现动画效果的方法
2016/07/28 Javascript
JavaScript实现公历转农历功能示例
2017/02/13 Javascript
jQuery加密密码到cookie的实现代码
2017/04/18 jQuery
使用AngularJS编写多选按钮选中时触发指定方法的指令代码详解
2017/07/24 Javascript
JavaScript实现兼容IE6的收起折叠与展开效果实例
2017/09/20 Javascript
JS实现留言板功能[楼层效果展示]
2017/12/27 Javascript
原生JS实现的雪花飘落动画效果
2018/05/03 Javascript
JS实现图片切换效果
2018/11/17 Javascript
vue实现前台列表数据过滤搜索、分页效果
2019/05/28 Javascript
百度小程序自定义通用toast组件
2019/07/17 Javascript
wxpython 学习笔记 第一天
2009/02/09 Python
python批量生成本地ip地址的方法
2015/03/23 Python
python编程使用selenium模拟登陆淘宝实例代码
2018/01/25 Python
PyQt QListWidget修改列表项item的行高方法
2019/06/20 Python
Python使用ffmpy将amr格式的音频转化为mp3格式的例子
2019/08/08 Python
详解解决Python memory error的问题(四种解决方案)
2019/08/08 Python
Python实现一个论文下载器的过程
2021/01/18 Python
css3+伪元素实现鼠标移入时下划线向两边展开的效果
2017/04/25 HTML / CSS
Smashbox官网:美国知名彩妆品牌
2017/01/05 全球购物
纽约著名的服装辅料来源:M&J Trimming
2017/07/26 全球购物
写出一个方法实现冒泡排序
2016/07/08 面试题
写给老师的表扬信
2014/01/21 职场文书
初中学习计划书范文
2014/09/15 职场文书
2015年学校保卫部工作总结
2015/05/11 职场文书
小爸爸观后感
2015/06/15 职场文书
《司马光》教学反思
2016/02/22 职场文书
中学生打架检讨书之500字
2019/08/06 职场文书
Python软件包安装的三种常见方法
2022/07/07 Python