努力坚持做到日更
2019/02/19 12:08
Python开发我来了哦
😙😙😙😙😙
开发前准备

- websocket
服务端和客户端之间的全双工通信协议
ws 普通协议头
wss 安全协议头

-
下载数据库
-
安装pycharm 找专业版的破解器破解
-
安装下载的依赖包
后端框架:tornado
数据库连接驱动:mysql-connector-python
数据库ORM:sqlalchemy
websocket通信:sockjs-tornado
获取系统硬件信息:psutil
可视化图表分析:pyecharts
pyecharts-snapshot
pip install -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com -r requirements.txt
指定国内镜像源哦 python牛皮👍👍👍👍👍
-i 指定镜像源
--trusted-host 指定信任主机
-r 指定依赖文件

- 项目目录
文件 | 用途 |
---|---|
manage.py | 入口启动文件,负责启动服务 |
app | 应用包 存放MTV |
init.py | 初始化模块,自定义应用,自定义服务 |
configs.py | 配置信息(数据库 网站站点) |
urls.py | 配置路由规则 |
views | 视图包(存放视图模块) |
models | 模型包(存放模型模块) |
templates | 模板目录(存放html模板) |
static | 静态文件目录(css、js、图片) |
tools | 工具包(图表、获取硬件信息、连接数据库) |
obfuscate 使模糊
ORM模型设计
啥是ORM 啥是模型设计 这些对我而言全是问题 先放着 后面慢慢悟
设计统计模型
-
创建文件 app/models/models.py
这里可以查询一下包里的方法是怎么定义的 以及怎么用 api方便以后extend开发
用sqlalchemy包里的方法创建各个字段 from sqlalchemy.dialects.mysql import BIGINT,DECIMAL,DATE,TIME,DATETIME
分析字段:
编号 id 大整型 主键
使用率 percent 小数类型 允许为空
总容量 total 小数类型 允许为空
使用量 used 小数类型 允许为空
剩余量 free 小数类型 允许为空
创建日期 create_date 日期类型
创建时间 create_time 时间类型
创建日期时间 create_dt 日期时间类型 -
模型生成数据表
默认有安装数据库~~~ 没安装的可以查mysql是怎么安装的
mysql安装成功
-
net start mysql80 启动mysql服务
启动mysql
-
mysql -h主机 -u用户 -P端口 -p 连接mysql数据库
数据库连接成功
-
操作数据库
show databases; 查看数据库
create database monitor; 创建数据库
use monitor; 切换到monitor库下面
show tables; 查看数据表
上述一系列操作
-
模型生成数据表分析实现思路:
1.导入数据库连接驱动
2.创建连接引擎(配置mysql数据库连接信息)
3.模型映射成数据表
代码如下
# -*- 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 # 创建元类
"""
1.导入模型继承父类
2.导入数据类型
3.导入创建字段的类
4.定义模型
"""
# 内存统计
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__":
# 1.导入数据库连接驱动
import mysql.connector
# 2.导入创建引擎
from sqlalchemy import create_engine
# 配置一下连接信息
mysql_configs = dict(
db_host="127.0.0.1", # 主机地址
db_name="monitor", # 数据库名称
db_port=3306, # 数据库端口
db_user="root", # 数据库用户
db_pwd="root" # 数据库密码
)
"""
连接格式:mysql+驱动名称://用户:密码@主机:端口/数据库名称
"""
link = "mysql+mysqlconnector://{db_user}:{db_pwd}@{db_host}:{db_port}/{db_name}".format(
**mysql_configs
)
# 创建连接引擎,encoding定义编码,echo是(True)否(False)输出日志
engine = create_engine(link, encoding="utf-8", echo=True)
# 映射
metadata.create_all(engine)

2019/02/19 20:25 回家回家😑😑😑😑😑 今日分割线
网友评论