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实现linux服务器批量修改密码并生成execl
Apr 22 Python
python从sqlite读取并显示数据的方法
May 08 Python
Python的Django框架中设置日期和字段可选的方法
Jul 17 Python
Python内置函数—vars的具体使用方法
Dec 04 Python
Python简单实现网页内容抓取功能示例
Jun 07 Python
对pandas的算术运算和数据对齐实例详解
Dec 22 Python
用Python徒手撸一个股票回测框架搭建【推荐】
Aug 05 Python
简单了解python数组的基本操作
Nov 26 Python
Python猴子补丁知识点总结
Jan 05 Python
Python改变对象的字符串显示的方法
Aug 01 Python
Pycharm中使用git进行合作开发的教程详解
Nov 17 Python
用python监控服务器的cpu,磁盘空间,内存,超过邮件报警
Jan 29 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和Mysql中转UTF8编码问题汇总
2015/10/10 PHP
PHP实现链表的定义与反转功能示例
2018/06/09 PHP
js动态在form上插入enctype=multipart/form-data的问题
2012/05/24 Javascript
jQuery实现id模糊查询的小例子
2013/03/19 Javascript
js或者jquery判断图片是否加载完成实现代码
2013/03/20 Javascript
jQuery学习之prop和attr的区别示例介绍
2013/11/15 Javascript
js对象内部访问this修饰的成员函数示例
2014/04/27 Javascript
JavaScript类型系统之布尔Boolean类型详解
2016/06/26 Javascript
jQuery插件HighCharts绘制2D柱状图、折线图和饼图的组合图效果示例【附demo源码下载】
2017/03/09 Javascript
Vue键盘事件用法总结
2017/04/18 Javascript
微信小程序实现导航栏选项卡效果
2020/06/19 Javascript
vue系列之requireJs中引入vue-router的方法
2018/07/18 Javascript
vue动画之点击按钮往上渐渐显示出来的实例
2018/09/29 Javascript
JQuery中的常用事件、对象属性与使用方法分析
2019/12/23 jQuery
从零使用TypeScript开发项目打包发布到npm
2020/02/14 Javascript
vue和H5 draggable实现拖拽并替换效果
2020/07/29 Javascript
Python中isnumeric()方法的使用简介
2015/05/19 Python
解决PyCharm中光标变粗的问题
2017/08/05 Python
Django与JS交互的示例代码
2017/08/23 Python
Python字符编码与函数的基本使用方法
2017/09/30 Python
Python算法之图的遍历
2017/11/16 Python
Python数据结构与算法之图的最短路径(Dijkstra算法)完整实例
2017/12/12 Python
python UDP(udp)协议发送和接收的实例
2019/07/22 Python
Python编程学习之如何判断3个数的大小
2019/08/07 Python
python set集合使用方法解析
2019/11/05 Python
Python使用pycharm导入pymysql教程
2020/09/16 Python
python 爬虫如何实现百度翻译
2020/11/16 Python
HTML5新特性 多线程(Worker SharedWorker)
2017/04/24 HTML / CSS
HTML5 播放 RTSP 视频的实例代码
2019/07/29 HTML / CSS
荷兰网上鞋店:Ziengs.nl
2017/01/02 全球购物
给民警的表扬信
2014/01/08 职场文书
企业文化口号
2014/06/12 职场文书
个人事迹材料范文
2014/12/29 职场文书
争先创优个人总结
2015/03/04 职场文书
z-index不起作用
2021/03/31 HTML / CSS
Spring boot admin 服务监控利器详解
2022/08/05 Java/Android