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结合shell查询google关键词排名的实现代码
Feb 27 Python
在python中使用正则表达式查找可嵌套字符串组
Oct 24 Python
python 借助numpy保存数据为csv格式的实现方法
Jul 04 Python
python框架中flask知识点总结
Aug 17 Python
python分批定量读取文件内容,输出到不同文件中的方法
Dec 08 Python
python双端队列原理、实现与使用方法分析
Nov 27 Python
谈谈Python:为什么类中的私有属性可以在外部赋值并访问
Mar 05 Python
python实现人机五子棋
Mar 25 Python
Python3之外部文件调用Django程序操作model等文件实现方式
Apr 07 Python
pyCharm 设置调试输出窗口中文显示方式(字符码转换)
Jun 09 Python
python爬虫看看虎牙女主播中谁最“顶”步骤详解
Dec 01 Python
python爬取企查查企业信息之selenium自动模拟登录企查查
Apr 08 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 程序员也要学会使用“异常”
2009/06/16 PHP
Window 7/XP 安装Apache 2.4与PHP 5.4 的过程详解
2013/06/02 PHP
ThinkPHP框架设计及扩展详解
2014/11/25 PHP
Laravel5中contracts详解
2015/03/02 PHP
详解WordPress中添加和执行动作的函数使用方法
2015/12/29 PHP
PHP制作登录异常ip检测功能的实例代码
2016/11/16 PHP
JavaScript中令你抓狂的魔术变量
2006/11/30 Javascript
jquery 新浪网易的评论块制作
2010/07/01 Javascript
通过JQuery将DIV的滚动条滚动到指定的位置方便自动定位
2014/05/05 Javascript
使用jquery选择器如何获取父级元素、同级元素、子元素
2014/05/14 Javascript
JS生成某个范围的随机数【四种情况详解】
2016/04/20 Javascript
js基于myFocus实现轮播图效果
2017/02/14 Javascript
JS原生数据双向绑定实现代码
2017/08/14 Javascript
javascript系统时间设置操作示例
2019/06/17 Javascript
对layer弹出框中icon数字参数的说明介绍
2019/09/04 Javascript
[49:54]Ti4 循环赛第三日 LGD vs Titan
2014/07/12 DOTA
python实现给字典添加条目的方法
2014/09/25 Python
Python使用dis模块把Python反编译为字节码的用法详解
2016/06/14 Python
详解Swift中属性的声明与作用
2016/06/30 Python
Django使用Celery异步任务队列的使用
2018/03/13 Python
Diango + uwsgi + nginx项目部署的全过程(可外网访问)
2018/04/22 Python
Python抽象和自定义类定义与用法示例
2018/08/23 Python
django+echart绘制曲线图的方法示例
2018/11/26 Python
python文件绝对路径写法介绍(windows)
2019/12/25 Python
Anaconda的安装及其环境变量的配置详解
2020/04/22 Python
Python中内建模块collections如何使用
2020/05/27 Python
Django serializer优化类视图的实现示例
2020/07/16 Python
Python监听剪切板实现方法代码实例
2020/11/11 Python
CSS3 Columns分列式布局方法简介
2014/05/03 HTML / CSS
使用CSS3制作版头动画效果
2020/12/24 HTML / CSS
英国领先的运动物理治疗供应公司:Vivomed
2018/07/14 全球购物
Shell如何接收变量输入
2016/08/06 面试题
大学同学会活动方案
2014/08/20 职场文书
婚礼长辈答谢词
2015/09/29 职场文书
送给教师们,到底该如何写好教学反思?
2019/07/02 职场文书
详解MySQL中timestamp和datetime时区问题导致做DTS遇到的坑
2021/12/06 MySQL