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 01 Python
Python实现二分查找算法实例
May 26 Python
Python装饰器语法糖
Jan 02 Python
django解决跨域请求的问题详解
Jan 20 Python
Python基础学习之时间转换函数用法详解
Jun 18 Python
详解django实现自定义manage命令的扩展
Aug 13 Python
python打开使用的方法
Sep 30 Python
python实现全排列代码(回溯、深度优先搜索)
Feb 26 Python
python dict乱码如何解决
Jun 07 Python
Python子进程subpocess原理及用法解析
Jul 16 Python
Python爬虫之Selenium多窗口切换的实现
Dec 04 Python
pandas数据分组groupby()和统计函数agg()的使用
Mar 04 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
9个PHP开发常用功能函数小结
2011/07/15 PHP
PHP中ob_start函数的使用说明
2013/11/11 PHP
4种PHP异步执行的常用方式
2015/12/24 PHP
PHP文件操作详解
2016/12/30 PHP
如何打开php的gd2库
2017/02/09 PHP
PHP7 字符串处理机制修改
2021/03/09 PHP
使用jquery获取网页中图片高度的两种方法
2013/09/26 Javascript
可自定义速度的js图片无缝滚动示例分享
2014/01/20 Javascript
调试代码导致IE出错的避免方法
2014/04/04 Javascript
javascript ajax的5种状态介绍
2014/08/18 Javascript
JS从数组中随机取出几个数组元素的方法
2016/08/02 Javascript
JavaScript学习笔记整理_关于表达式和语句
2016/09/19 Javascript
Javascript实现base64的加密解密方法示例
2017/06/27 Javascript
微信小程序之网络请求简单封装实例详解
2017/06/28 Javascript
自定义PC微信扫码登录样式写法
2017/12/12 Javascript
10分钟上手vue-cli 3.0 入门介绍
2018/04/04 Javascript
VUE-cli3使用 svg-sprite-loader
2018/10/20 Javascript
原生js+canvas实现验证码
2020/11/29 Javascript
原生js实现滑块区间组件
2021/01/20 Javascript
python3模拟百度登录并实现百度贴吧签到示例分享(百度贴吧自动签到)
2014/02/24 Python
Python实现的ini文件操作类分享
2014/11/20 Python
Python实现查看系统启动项功能示例
2018/05/10 Python
python 对dataframe下面的值进行大规模赋值方法
2018/06/09 Python
Selenium元素的常用操作方法分析
2018/08/10 Python
Python实现基于SVM的分类器的方法
2019/07/19 Python
Python获取一个用户名的组ID过程解析
2019/09/03 Python
Python 实现Numpy中找出array中最大值所对应的行和列
2019/11/26 Python
python3环境搭建过程(利用Anaconda+pycharm)完整版
2020/08/19 Python
英国汽车零件购物网站:GSF Car Parts
2019/05/23 全球购物
ABOUT YOU罗马尼亚:超过600个时尚品牌
2019/09/19 全球购物
股份合作协议书范本
2014/04/14 职场文书
励志演讲稿200字
2014/08/21 职场文书
户籍证明格式
2014/09/15 职场文书
2014年工作总结与下年工作计划
2014/11/27 职场文书
利用Matlab绘制各类特殊图形的实例代码
2021/07/16 Python
SpringBoot中使用Redis作为全局锁示例过程
2022/03/24 Java/Android