zoukankan      html  css  js  c++  java
  • tornado硬件监控系统-连接数据库与数据迁移(2)

    #-*- coding: utf-8 -*-
    from sqlalchemy.ext.declarative import declarative_base
    from sqlalchemy.dialects.mysql import BIGINT,DECIMAL,DATE,TIME,DATETIME
    from sqlalchemy import Column
    
    #调用
    Base = declarative_base()
    #连接数据创建元类做映射
    metadata = Base.metadata
    '''
    导入模型的继承父类
    导入数据类型
    导入创建字段类
    定义模型
    '''
    
    #内存统计
    class Mem(Base):
        __tablename__ = "mem"
        id = Column(BIGINT,primary_key=True)
        percent = Column(DECIMAL(6,2))
        total = Column(DECIMAL(8,2))
        used = Column(DECIMAL(8,2))
        free = Column(DECIMAL(8,2))
        create_date = Column(DATE)
        create_time = Column(TIME)
        create_dt = Column(DATETIME)
    
    #交换分区
    class Swap(Base):
        __tablename__ = "swap"
        id = Column(BIGINT,primary_key=True)
        percent = Column(DECIMAL(6,2))
        total = Column(DECIMAL(8,2))
        used = Column(DECIMAL(8,2))
        free = Column(DECIMAL(8,2))
        create_date = Column(DATE)
        create_time = Column(TIME)
        create_dt = Column(DATETIME)
    
    #cpu统计
    class Cpu(Base):
        __tablename__ = "cpu"
        id = Column(BIGINT,primary_key=True)
        percent = Column(DECIMAL(6,2))
        create_date = Column(DATE)
        create_time = Column(TIME)
        create_dt = Column(DATETIME)
    
    if __name__ == "__main__":
        import mysql.connector
        from sqlalchemy import create_engine
        mysql_configs = dict(
            db_host="127.0.0.1",
            db_name="moniter",
            db_port=3306,
            db_user="root",
            db_pwd="",
        )
        '''
        连接的格式:mysql+驱动://用户:密码@主机:端口/数据库名称
        '''
    
        link = "mysql+mysqlconnector://{db_user}:{db_pwd}@{db_host}:{db_port}/{db_name}".format(
            **mysql_configs
        )
    
        #创建连接,echo输出日志
        engine = create_engine(link,encoding="utf-8",echo=True)
        #映射
        metadata.create_all(engine)

    登录数据库,创建上面的数据库名字

    数据迁移,终端运行:

    (venv) ******moniterappmodels>

    Python models.py

     查看结果:

  • 相关阅读:
    gnome-shell 使用 notify-send 发送桌面消息
    fedora 中从命令行中直接打开资源管理器
    wget curl 的 使用方法
    NFS 系统的搭建 on fedora; nfs 搭建 on ubuntu 1806;
    -bash: ./switch.sh: /bin/bash^M: bad interpreter: No such file or directory
    Linux 快速查看系统配置-熟悉新环境的配置
    2019-11-7-WPF-How-to-get-plain-text-from-RichTextBox
    2018-8-10-git-push-错误-hook-declined-
    2018-12-25-win2d-图片水印
    2018-8-10-win10-UWP-用Path画图
  • 原文地址:https://www.cnblogs.com/topass123/p/13098656.html
Copyright © 2011-2022 走看看