这几天在欺负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. iwork 09 可以用的序列号

    E4RJ-YKHP-9ER4-WK9Y-H4UM-5S2G9MU-9U9J-KN4M-4PAE-DYNA-5S2EGMU-3PKP-NN9G-3JW4-3RAD-5S2

  2. 建造者模式(Builder)

    建造者模式(Builder)将复杂的构建与其表示相分离,使得同样的构建过程可以创建不同的表示. 建造者模式通常包括下面几个角色: 1. builder:给出一个抽象接口,以规范产品对象的各个组成成分的 ...

  3. Fragment使用findFragmentById返回null

    @Override public void onClick(View v) { switch (v.getId()){ case R.id.btn1: replaceFragment(new Anot ...

  4. (转)WHY DEEP LEARNING IS SUDDENLY CHANGING YOUR LIFE

    Main Menu Fortune.com       E-mail Tweet Facebook Linkedin Share icons By Roger Parloff Illustration ...

  5. 通过Oracle补充日志,找到锁阻塞源头的SQL

    问题背景: 有时会考虑一件事情,如果在Oracle环境下出现了锁阻塞的情况,如何定位到SQL源头(通过session.lock.transaction等视图仅能定位到会话)?或许有人会想有没有可能通过 ...

  6. MySQL性能优化总结(转)https://yq.aliyun.com/articles/24249

    摘要: 一.MySQL的主要适用场景 1.Web网站系统 2.日志记录系统 3.数据仓库系统 4.嵌入式系统 二.MySQL架构图:   三.MySQL存储引擎概述 1)MyISAM存储引擎 MyIS ...

  7. 9、java中的final关键字

    /* final : 最终.作为一个修饰符, 1,可以修饰类,函数,变量. 2,被final修饰的类不可以被继承.为了避免被继承,被子类复写功能. 3,被final修饰的方法不可以被复写. 4,被fi ...

  8. 黄聪:MySQL 按指定字段自定义列表排序

    问题描述 大家都知道, MySQL 中按某字段升序排列的 SQL 为 (以 id 为例, 下同): SELECT * FROM `MyTable` , , , ) ORDER BY `id` ASC ...

  9. 非归档模式下使用Rman进行备份和恢复

    实验环境: 一.首先进行全库数据备份: 在非归档模式下,rman备份需要在mount模式下进行 SQL> select status from v$instance; STATUS ------ ...

  10. html5 xdm 页面之间的通信

    <!-- 这个是父页面xdm.html --><!DOCTYPE html> <html> <head> <meta charset=" ...