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 相关文章推荐
pycharm 配置远程解释器的方法
Oct 28 Python
Django框架实现的简单分页功能示例
Dec 04 Python
详解python中递归函数
Apr 16 Python
Python read函数按字节(字符)读取文件的实现
Jul 03 Python
python中对_init_的理解及实例解析
Oct 11 Python
python 实现按对象传值
Dec 26 Python
Pytorch的mean和std调查实例
Jan 02 Python
Python参数传递对象的引用原理解析
May 22 Python
使用Keras中的ImageDataGenerator进行批次读图方式
Jun 17 Python
Python使用lambda抛出异常实现方法解析
Aug 20 Python
python中的测试框架
Nov 13 Python
Python的Tqdm模块实现进度条配置
Feb 24 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 安装方法
2007/01/15 PHP
Php 构造函数construct的前下划线是双的_
2009/12/08 PHP
php中截取中文字符串的代码小结
2011/07/17 PHP
CodeIgniter CLI模式简介
2014/06/17 PHP
curl和libcurl的区别简介
2015/07/01 PHP
Laravel + Elasticsearch 实现中文搜索的方法
2020/02/02 PHP
Cookie 注入是怎样产生的
2009/04/08 Javascript
ie浏览器使用js导出网页到excel并打印
2014/03/11 Javascript
使用jquery解析XML示例代码
2014/09/05 Javascript
JavaScript中的replace()方法使用详解
2015/06/06 Javascript
ros::spin() 和 ros::spinOnce()函数的区别及详解
2016/10/01 Javascript
jquery结合html实现中英文页面切换
2016/11/29 Javascript
JS实现的缓冲运动效果示例
2018/04/30 Javascript
javascript设计模式 ? 桥接模式原理与应用实例分析
2020/04/13 Javascript
vue动画—通过钩子函数实现半场动画操作
2020/08/09 Javascript
python去掉空白行的多种实现代码
2018/03/19 Python
Python用5行代码实现批量抠图的示例代码
2020/04/14 Python
Python模拟登入的N种方式(建议收藏)
2020/05/31 Python
pandas to_excel 添加颜色操作
2020/07/14 Python
CSS3悬停效果案例应用
2012/11/21 HTML / CSS
一文彻底解决HTML5页面中长按保存图片功能
2019/06/10 HTML / CSS
MediaMarkt比利时:欧洲最大电器连锁店
2020/12/21 全球购物
光声世纪笔试题目
2012/08/25 面试题
外贸主管求职简历的自我评价
2013/10/23 职场文书
奥巴马获胜演讲稿
2014/05/15 职场文书
年终晚会活动方案
2014/08/21 职场文书
2014最新实习证明模板
2014/10/02 职场文书
2014年后备干部工作总结
2014/12/08 职场文书
本科毕业论文致谢怎么写
2015/05/14 职场文书
唐山大地震观后感
2015/06/05 职场文书
公司客户答谢酒会祝酒词
2015/08/11 职场文书
社区服务理念口号
2015/12/25 职场文书
合作意向书范本
2019/04/17 职场文书
导游词之寿县报恩寺
2020/01/19 职场文书
OpenCV全景图像拼接的实现示例
2021/06/05 Python
Spring 使用注解开发
2022/05/20 Java/Android