首页 > 代码库 > 北方姆Q python第十三天

北方姆Q python第十三天

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

paramiko模块

直接完整版本

 1 #!/usr/bin/env python 2 import paramiko 3  4  5 class SSHConnection(object): 6     def __init__(self, host=172.16.5.7, port=22, username=root,pwd=123qweASD): 7         """ 8         信息初始化 9         :return: 10         """11         self.host = host12         self.port = port13         self.username = username14         self.pwd = pwd15         self.__k = None16 17     def run(self):18         self.connect()19         pass20         self.close()21 22     def connect(self):23         """24         创建连接25         :return: 26         """27         transport = paramiko.Transport((self.host,self.port))28         transport.connect(username=self.username,password=self.pwd)29         self.__transport = transport30 31     def close(self):32         """ 33         关闭连接34         :return: 35         """36         self.__transport.close()37 38     def cmd(self, command):39         """40         命令执行方法41         :return: 42         """43         ssh = paramiko.SSHClient()44         ssh._transport = self.__transport45         stdin, stdout, stderr = ssh.exec_command(command)46         result = stdout.read()47         print(result.decode())48 49     def upload(self,local_path, target_path):50         """51         上传操作方法52         :return: 53         """54         sftp = paramiko.SFTPClient.from_transport(self.__transport)55         sftp.put(local_path, target_path)56 57 ssh = SSHConnection()58 ssh.connect()59 # ssh.cmd(‘df‘)60 # ssh.upload(‘s2.py‘, "/root/sss.py")61 ssh.cmd(ls -l)62 ssh.close()

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

 1 #!/usr/bin/env python 2 from sqlalchemy import create_engine 3 from sqlalchemy.ext.declarative import declarative_base 4 from sqlalchemy import Column, Integer, String, ForeignKey, UniqueConstraint, Index 5 from sqlalchemy.orm import sessionmaker, relationship 6 engine = create_engine(mysql+pymysql://test:123@172.16.5.7/s13, max_overflow=5) 7  8 Base = declarative_base() 9 10 11 class HostToHostUser(Base):12     """13     定义host_to_host_user表的类14     """15     __tablename__ = host_to_host_user16     nid = Column(Integer, primary_key=True, autoincrement=True)17     host_id = Column(Integer, ForeignKey(host.nid))18     host_user_id = Column(Integer, ForeignKey(host_user.nid))19 20     host = relationship(Host, backref=h)21     host_user = relationship(HostUser, backref=u)22 23 24 class Host(Base):25     """26     定义host表的类27     """28     __tablename__ = host29     nid = Column(Integer, primary_key=True, autoincrement=True)30     hostname = Column(String(32))31     port = Column(String(32))32     ip = Column(String(32))33 34     host_user = relationship(HostUser, secondary=HostToHostUser.__table__, backref=h)35 36 37 class HostUser(Base):38     """39     定义host_user表的类40     """41     __tablename__ = host_user42     nid = Column(Integer, primary_key=True, autoincrement=True)43     username = Column(String(32))44 45 46 def init_db():47     """48     表创建函数49     :return: 50     """51     Base.metadata.create_all(engine)52 53 54 def drop_db():55     """56     表删除函数57     :return: 58     """59     Base.metadata.drop_all(engine)60     61 # init_db()62 # drop_db()63 64 Session = sessionmaker(bind=engine)             # 建立会话保持连接65 session = Session()66 67 # 插入相关数据68 # session.add_all([69 #     Host(hostname=‘c1‘, port=‘22‘, ip=‘1.1.1.1‘),70 #     Host(hostname=‘c2‘, port=‘22‘, ip=‘1.1.1.2‘),71 #     Host(hostname=‘c3‘, port=‘22‘, ip=‘1.1.1.3‘),72 #     Host(hostname=‘c4‘, port=‘22‘, ip=‘1.1.1.4‘),73 #     Host(hostname=‘c5‘, port=‘22‘, ip=‘1.1.1.5‘),74 #     HostUser(username=‘root‘),75 #     HostUser(username=‘nb‘),76 #     HostUser(username=‘db‘),77 #     HostUser(username=‘sb‘),78 #     HostToHostUser(host_id=1, host_user_id=1),79 #     HostToHostUser(host_id=1, host_user_id=2),80 #     HostToHostUser(host_id=1, host_user_id=3),81 #     HostToHostUser(host_id=2, host_user_id=2),82 #     HostToHostUser(host_id=2, host_user_id=3),83 #     HostToHostUser(host_id=2, host_user_id=4),84 # ])85 #86 # session.commit()87 # host_obj = session.query(Host).filter(Host.hostname == ‘c1‘).first()88 # host_2_host_user = session.query(HostToHostUser.host_user_id).filter(HostToHostUser.host_id == host_obj.nid).all()89 # r = zip(*host_2_host_user)90 # users = session.query(HostUser.username).filter(HostUser.nid.in_(list(r)[0])).all()91 # print(users)92 93 host_obj = session.query(Host).filter(Host.hostname == c1).first()94 # for i in host_obj.h:95 #     print(i.host_user.username)96 97 print(host_obj.host_user)

北方姆Q python第十三天