这几天在欺负docker兽,很是开心,但是没想到领导突然让我去殴打openstack兽,完全没有兴趣嘛,毕竟前一阵一直在吊打它,当然啦,对于愚蠢的人类而言openstack兽是十分强大的,不过对于北方来说就不是酱了老司机带你飞啊~~~过几天还要给愚蠢的人类讲云计算,我靠,这么简单的东西还需要讲?讲也不应该由北方大人来讲好不好,简单写点吧,刚才为了愚蠢的人类们写了2小时openstack的安装文档,累死萌萌了,下面该短暂的学习前端知识了

paramiko模块

直接完整版本

 #!/usr/bin/env python
import paramiko class SSHConnection(object):
def __init__(self, host='172.16.5.7', port=22, username='root',pwd='123qweASD'):
"""
信息初始化
:return:
"""
self.host = host
self.port = port
self.username = username
self.pwd = pwd
self.__k = None def run(self):
self.connect()
pass
self.close() def connect(self):
"""
创建连接
:return:
"""
transport = paramiko.Transport((self.host,self.port))
transport.connect(username=self.username,password=self.pwd)
self.__transport = transport def close(self):
"""
关闭连接
:return:
"""
self.__transport.close() def cmd(self, command):
"""
命令执行方法
:return:
"""
ssh = paramiko.SSHClient()
ssh._transport = self.__transport
stdin, stdout, stderr = ssh.exec_command(command)
result = stdout.read()
print(result.decode()) def upload(self,local_path, target_path):
"""
上传操作方法
:return:
"""
sftp = paramiko.SFTPClient.from_transport(self.__transport)
sftp.put(local_path, target_path) ssh = SSHConnection()
ssh.connect()
# ssh.cmd('df')
# ssh.upload('s2.py', "/root/sss.py")
ssh.cmd('ls -l')
ssh.close()

数据库的,从单表练习开始,再用一对多,最后多对多

 #!/usr/bin/env python
from sqlalchemy import create_engine
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy import Column, Integer, String, ForeignKey, UniqueConstraint, Index
from sqlalchemy.orm import sessionmaker, relationship
engine = create_engine('mysql+pymysql://test:123@172.16.5.7/s13', max_overflow=5) Base = declarative_base() class HostToHostUser(Base):
"""
定义host_to_host_user表的类
"""
__tablename__ = 'host_to_host_user'
nid = Column(Integer, primary_key=True, autoincrement=True)
host_id = Column(Integer, ForeignKey('host.nid'))
host_user_id = Column(Integer, ForeignKey('host_user.nid')) host = relationship('Host', backref='h')
host_user = relationship('HostUser', backref='u') class Host(Base):
"""
定义host表的类
"""
__tablename__ = 'host'
nid = Column(Integer, primary_key=True, autoincrement=True)
hostname = Column(String(32))
port = Column(String(32))
ip = Column(String(32)) host_user = relationship('HostUser', secondary=HostToHostUser.__table__, backref='h') class HostUser(Base):
"""
定义host_user表的类
"""
__tablename__ = 'host_user'
nid = Column(Integer, primary_key=True, autoincrement=True)
username = Column(String(32)) def init_db():
"""
表创建函数
:return:
"""
Base.metadata.create_all(engine) def drop_db():
"""
表删除函数
:return:
"""
Base.metadata.drop_all(engine) # init_db()
# drop_db() Session = sessionmaker(bind=engine) # 建立会话保持连接
session = Session() # 插入相关数据
# session.add_all([
# Host(hostname='c1', port='22', ip='1.1.1.1'),
# Host(hostname='c2', port='22', ip='1.1.1.2'),
# Host(hostname='c3', port='22', ip='1.1.1.3'),
# Host(hostname='c4', port='22', ip='1.1.1.4'),
# Host(hostname='c5', port='22', ip='1.1.1.5'),
# HostUser(username='root'),
# HostUser(username='nb'),
# HostUser(username='db'),
# HostUser(username='sb'),
# HostToHostUser(host_id=1, host_user_id=1),
# HostToHostUser(host_id=1, host_user_id=2),
# HostToHostUser(host_id=1, host_user_id=3),
# HostToHostUser(host_id=2, host_user_id=2),
# HostToHostUser(host_id=2, host_user_id=3),
# HostToHostUser(host_id=2, host_user_id=4),
# ])
#
# session.commit()
# host_obj = session.query(Host).filter(Host.hostname == 'c1').first()
# host_2_host_user = session.query(HostToHostUser.host_user_id).filter(HostToHostUser.host_id == host_obj.nid).all()
# r = zip(*host_2_host_user)
# users = session.query(HostUser.username).filter(HostUser.nid.in_(list(r)[0])).all()
# print(users) host_obj = session.query(Host).filter(Host.hostname == 'c1').first()
# for i in host_obj.h:
# print(i.host_user.username) print(host_obj.host_user)

python第十三天的更多相关文章

  1. 初学 Python(十三)——匿名函数

    初学 Python(十三)--匿名函数 初学 Python,主要整理一些学习到的知识点,这次是匿名函数. # -*- coding:utf-8 -*- #关键字lambda定义的函数都是匿名函数 #做 ...

  2. Python第十三天 django 1.6 导入模板 定义数据模型 访问数据库 GET和POST方法 SimpleCMDB项目 urllib模块 urllib2模块 httplib模块 django和web服务器整合 wsgi模块 gunicorn模块

    Python第十三天   django 1.6   导入模板   定义数据模型   访问数据库   GET和POST方法    SimpleCMDB项目   urllib模块   urllib2模块 ...

  3. 孤荷凌寒自学python第二十三天python类的封装

    孤荷凌寒自学python第二十三天python类的封装 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) 一.从怎么样访问类的内部代码块中定义的私有属性说起 类中定义的私有属性和私有方法是无法被 ...

  4. 孤荷凌寒自学python第十三天python代码的外部模块引用与基本赋值语句

    孤荷凌寒自学python第十三天python代码的外部模块引用与基本赋值语句 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) 从结构化编程流行以来,代码便被分块存储,称之为模块或库. 在pyt ...

  5. Python进阶(十三)----面向对象

    Python进阶(十三)----面向对象 一丶面向过程编程vs函数式编程vs面向对象编程 面向过程: ​ 简而言之,step by step 一步一步完成功能,就是分析出解决问题所需要的步骤,然后用函 ...

  6. selenium python (十三)对于分页的处理

    #!/usr/bin/python# -*- coding: utf-8 -*-__author__ = 'zuoanvip' #对于web上分页的功能,一般做如下操作:    #获取总页数    # ...

  7. Python 第十三篇之二:jQuery基础

    一:jQuery是一个兼容多浏览器的javascript类库,核心理念是write less,do more(写得更少,做得更多),对javascript进行了封装,是的更加便捷的开发,并且在兼容性方 ...

  8. Python爬虫(十三)_案例:使用XPath的爬虫

    本篇是使用XPath的案例,更多内容请参考:Python学习指南 案例:使用XPath的爬虫 现在我们用XPath来做一个简单的爬虫,我们尝试爬取某个贴吧里的所有帖子且将该帖子里每个楼层发布的图片下载 ...

  9. 小甲鱼Python第二十三讲课后习题--025,字典

    笔记: 1.字典是Python中唯一的映射类型 2.字典包含两个要素:键(key)和值(value)他们是成对出现的,用大括号括起来,多对存在时用逗号隔开. 3.可以用dict()直接创建字典,如di ...

随机推荐

  1. Sporadic IOException: Failed to persist config

    问题 在调用Jenkins API来更新Job的时候报错‘Sporadic IOException: Failed to persist config’. 原因 https://issues.jenk ...

  2. CC3000 SPI接口编程介绍

    CC3000 SPI 操作: CC3000的SPI 是基于五根线CLCK,CSn,IRQ,MISO,MOSI:通信模式如下图: CLCK:时钟频率0-26M从主机到从机,提供SPI接口时钟 CSn:低 ...

  3. 单例设计模式getInstance()

    对象的实例化方法,也是比较多的,最常用的方法是直接使用new,而这是最普通的,如果要考虑到其它的需要,如单实例模式,层次间调用等等.   直接使用new就不可以实现好的设计好,这时候需要使用间接使用n ...

  4. 微信接口access_token

    //调用聚合网笑话接口 $url = 'http://japi.juhe.cn/joke/img/text.from?page=&pagesize=2&key=f0d06a1fe45b ...

  5. Node.js网络编程

    Node.js为javascript语言提供了一个在服务端运行的平台,它以其事件驱动,非阻塞I/O机制使得它本身非常适合开发运行在在分布式设备上的I/O密集型应用,分布式应用要求Node.js必须对网 ...

  6. loose coupling之函数签名

    当函数的参数有多个时(比如多于4个),可以考虑将这些参数组织放入一个class(struct),然后函数参数就减少为一个. 1.以class instance来穿参数,可以很容易在各个函数之间传递参数 ...

  7. Linux命令全集

    一.Ubuntu10.4 启动纯文件界面 打开 /etc/default/grub 文件, 注释掉  GRUB_CMDLINE_LINUX_DEFAULT="quiet splash&quo ...

  8. 少见的sql

    1,values 的新用法,出现自2008 SELECT * FROM table AS a ,,,'qq3')) tem(id,name) ON a.id=tem.id insert into xx ...

  9. [家里蹲大学数学杂志]第033期稳态可压Navier-Stokes方程弱解的存在性

    1. 方程  考虑 $\bbR^3$ 中有界区域 $\Omega$ 上如下的稳态流动: $$\bee\label{eq} \left\{\ba{ll} \Div(\varrho\bbu)=0,\\ \ ...

  10. [家里蹲大学数学杂志]第041期中山大学数计学院 2008 级数学与应用数学专业《泛函分析》期末考试试题 A

    1 ( 10 分 ) 设 $\mathcal{X}$ 是 Banach 空间, $f$ 是 $\mathcal{X}$ 上的线性泛函. 求证: $f\in \mathcal{L}(\mathcal{X ...