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设计模式之代理模式实例
Apr 26 Python
python实现的简单猜数字游戏
Apr 04 Python
使用python获取电脑的磁盘信息方法
Nov 01 Python
python utc datetime转换为时间戳的方法
Jan 15 Python
Python微医挂号网医生数据抓取
Jan 24 Python
python实现nao机器人手臂动作控制
Apr 29 Python
python命令行参数用法实例分析
Jun 25 Python
python画图——实现在图上标注上具体数值的方法
Jul 08 Python
Python三元运算与lambda表达式实例解析
Nov 30 Python
Tensorflow实现部分参数梯度更新操作
Jan 23 Python
使用keras内置的模型进行图片预测实例
Jun 17 Python
Django用户认证系统如何实现自定义
Nov 12 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 header功能的使用
2013/10/28 PHP
分享一个php 的异常处理程序
2014/06/22 PHP
PHP中文字符串截断无乱码解决方法
2016/10/10 PHP
PHP Header用于页面跳转时的几个注意事项
2016/10/21 PHP
laravel手动创建数组分页的实现代码
2018/06/07 PHP
Firefox下提示illegal character并出现乱码的原因
2010/03/25 Javascript
奉献给JavaScript初学者的编写开发的七个细节
2011/01/11 Javascript
JavaScript实现的简单拖拽效果
2015/06/01 Javascript
JS实现带鼠标效果的头像及文章列表代码
2015/09/27 Javascript
理解javascript闭包
2015/12/15 Javascript
微信小程序删除处理详解
2017/08/16 Javascript
浅谈函数调用的不同方式,以及this的指向
2017/09/17 Javascript
Bootstrap Table快速完美搭建后台管理系统
2017/09/20 Javascript
JavaScript选择排序算法原理与实现方法示例
2018/08/06 Javascript
ng-zorro-antd 入门初体验
2018/12/03 Javascript
JavaScript获取页面元素的常用方法详解
2019/09/28 Javascript
微信小程序基于movable-view实现滑动删除效果
2020/01/08 Javascript
vue和H5 draggable实现拖拽并替换效果
2020/07/29 Javascript
Python操作列表之List.insert()方法的使用
2015/05/20 Python
Python中模块与包有相同名字的处理方法
2017/05/05 Python
python创建文件时去掉非法字符的方法
2018/10/31 Python
Python Matplotlib实现三维数据的散点图绘制
2019/03/19 Python
用openCV和Python 实现图片对比,并标识出不同点的方式
2019/12/19 Python
Python vtk读取并显示dicom文件示例
2020/01/13 Python
Python中 Global和Nonlocal的用法详解
2020/01/20 Python
python实现FTP循环上传文件
2020/03/20 Python
通用的Django注册功能模块实现方法
2021/02/05 Python
纯CSS3实现漂亮的input输入框动画样式库(Text input love)
2018/12/29 HTML / CSS
香港时尚女装购物网站:ZAFUL
2017/07/19 全球购物
No7 Beauty美国官网:英国国民护肤品牌
2019/10/31 全球购物
求最大连续递增数字串(如"ads3sl456789DF3456ld345AA"中的"456789")
2015/09/11 面试题
学习全国两会精神心得体会范文
2014/03/17 职场文书
党支部创先争优公开承诺书
2015/04/30 职场文书
2015年体育教师个人工作总结
2015/05/12 职场文书
Java输出Hello World完美过程解析
2021/06/13 Java/Android
python获取带有返回值的多线程
2022/05/02 Python