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常用知识点汇总
May 08 Python
利用aardio给python编写图形界面
Aug 21 Python
Python3字符串encode与decode的讲解
Apr 02 Python
PyQt5固定窗口大小的方法
Jun 18 Python
python之生产者消费者模型实现详解
Jul 27 Python
通过Python编写一个简单登录功能过程解析
Sep 04 Python
使用Python测试Ping主机IP和某端口是否开放的实例
Dec 17 Python
Python要如何实现列表排序的几种方法
Feb 21 Python
python+gdal+遥感图像拼接(mosaic)的实例
Mar 10 Python
5行Python代码实现图像分割的步骤详解
May 25 Python
python openpyxl模块的使用详解
Feb 25 Python
Python 中random 库的详细使用
Jun 03 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生成excel文件的简单方法
2014/02/08 PHP
php中explode的负数limit用法分析
2015/02/27 PHP
表单提交错误后返回内容消失问题的解决方法(PHP网站)
2015/10/20 PHP
php上传图片生成缩略图(GD库)
2016/01/06 PHP
PHP Yaf框架的简单安装使用教程(推荐)
2016/06/08 PHP
浅谈PHP链表数据结构(单链表)
2016/06/08 PHP
PHP getNamespaces()函数讲解
2019/02/03 PHP
学习ExtJS Panel常用方法
2009/10/07 Javascript
JavaScript中也使用$美元符号来代替document.getElementById
2010/06/19 Javascript
eval与window.eval的差别分析
2011/03/17 Javascript
jquery 利用show和hidden实现级联菜单示例代码
2013/08/09 Javascript
JavaScript程序员应该知道的45个实用技巧
2014/03/04 Javascript
JS图片自动轮换效果实现思路附截图
2014/04/30 Javascript
对new functionName()定义一个函数的理解
2014/05/22 Javascript
javascript html5摇一摇功能的实现
2016/04/19 Javascript
JavaScript常用正则函数用法示例
2017/01/23 Javascript
jQuery ajax实现省市县三级联动
2021/03/07 Javascript
详解vuex中mapState,mapGetters,mapMutations,mapActions的作用
2018/04/13 Javascript
JS判断数组是否包含某元素实现方法汇总
2020/06/24 Javascript
[04:16]完美世界DOTA2联赛PWL S2 集锦第一期
2020/11/23 DOTA
Python自定义函数的创建、调用和函数的参数详解
2014/03/11 Python
Python中用Descriptor实现类级属性(Property)详解
2014/09/18 Python
解决phantomjs截图失败,phantom.exit位置的问题
2018/05/17 Python
Django框架的使用教程路由请求响应的方法
2018/07/03 Python
Python 的字典(Dict)是如何存储的
2019/07/05 Python
检测python爬虫时是否代理ip伪装成功的方法
2019/07/12 Python
tensorflow生成多个tfrecord文件实例
2020/02/17 Python
在线服装零售商:SheIn
2016/07/22 全球购物
Nordgreen手表德国官方网站:丹麦极简主义手表
2019/10/31 全球购物
自我评价中英文语句
2013/11/30 职场文书
家长给老师的道歉信
2014/01/13 职场文书
委托公证书
2014/04/08 职场文书
医院反腐倡廉演讲稿
2014/09/16 职场文书
清明节网上祭英烈寄语2015
2015/03/04 职场文书
孕妇病假条怎么写
2015/08/17 职场文书
如何计划开一家便利店?
2019/07/31 职场文书