思路是這樣的
思路: 1. 用SQLAlhemy 添加信息表和 用戶表 2. 登陸時獲取用戶的用戶名密碼、 去數據庫獲取數據,並取得數據, 對比判斷。 3. 查看所有主機,首先判斷是否登陸。 如果登陸之后去數據庫for 循環拉取數據 到頁面。顯示 4、 添加主機、 首先判斷是否登陸,登陸之后,彈出一個添加主機的對話框、 判斷所有添加的信息不能為空。如果為空就提示,並且數據的格式要固定。才能添加進去。 如果數據格式不正確。就用js 去判斷。並且在后端代碼中也進行判斷
SQL 代碼如下:
sql_main.py

#!/usr/bin/env python # -*- coding:utf-8 -*- # Author: liang import sqlalchemy from sqlalchemy import create_engine from sqlalchemy.ext.declarative import declarative_base from sqlalchemy import Column,String,Integer,DATE,CHAR,ForeignKey,VARCHAR from sqlalchemy.orm import sessionmaker,relationship # 數據庫連接 engine=create_engine("mysql+pymysql://用戶名:密碼x@www.o2oxy.cn/liang", encoding="utf-8") # ROM 基類 Base=declarative_base() class UserHost(Base): __tablename__='user_host' id=Column(Integer,primary_key=True) # id ip=Column(VARCHAR(255),nullable=False) # ip port=Column(VARCHAR(255),nullable=False) # post user=Column(VARCHAR(255),nullable=False) # 用戶 password=Column(VARCHAR(255),nullable=False) #密碼 business=Column(VARCHAR(255),nullable=False) # 業務線 Asset_group=Column(VARCHAR(255),nullable=False) #資產組 Admin=Column(VARCHAR(255),nullable=False) # 管理員 def __repr__(self): return "<%s name:%s>" %(self.id,self.ip) class AdminUser(Base): __tablename__='admin_user' id=Column(Integer,primary_key=True) # id user=Column(String(32),nullable=False) # 用戶名 password=Column(String(32),nullable=False) #密碼 def __repr__(self): return "<%s name:%s>" %(self.id,self.user) Base.metadata.create_all(engine)
sql_insert.py

#!/usr/bin/env python # -*- coding:utf-8 -*- # Author: liang from cmdb import sql_mian from sqlalchemy.orm import sessionmaker Session_class=sessionmaker(bind=sql_mian.engine) Session=Session_class() ###創建 s2=sql_mian.UserHost(ip="192.168.10.1",port="3306",user="liang6",password="lioang",business="web",Asset_group="web",Admin="admin") s3=sql_mian.UserHost(ip="192.168.10.2",port="3306",user="lian8",password="lioang",business="web",Asset_group="web",Admin="admin") s4=sql_mian.UserHost(ip="192.168.10.3",port="3306",user="liang6",password="lioang",business="web",Asset_group="web",Admin="admin") s5=sql_mian.UserHost(ip="192.168.10.4",port="3306",user="liang5",password="lioang",business="web",Asset_group="web",Admin="admin") s6=sql_mian.UserHost(ip="192.168.10.5",port="3306",user="liang4",password="lioang",business="web",Asset_group="web",Admin="admin") s7=sql_mian.UserHost(ip="192.168.10.6",port="3306",user="liang3",password="lioang",business="web",Asset_group="web",Admin="admin") s8=sql_mian.UserHost(ip="192.168.10.7",port="3306",user="liang2",password="lioang",business="web",Asset_group="web",Admin="admin") s9=sql_mian.AdminUser(user="admin",password="admin123456") s10=sql_mian.AdminUser(user="admin",password="admin1234567899") Session.add_all([s2,s3,s4,s5,s6,s7,s8,s9,s10]) # x=Session.query(sql_mian.UserHost).filter_by(id=8).first() # # Session.delete(x) Session.commit()
sql_api.py

#!/usr/bin/env python # -*- coding:utf-8 -*- # Author: liang from cmdb import sql_mian from sqlalchemy.orm import sessionmaker import re Session_class=sessionmaker(bind=sql_mian.engine) Session=Session_class() def AdminUser(): obj = Session.query(sql_mian.AdminUser.user, sql_mian.AdminUser.password).all() return obj def UserHost(): obj = Session.query(sql_mian.UserHost.id, sql_mian.UserHost.ip, sql_mian.UserHost.port, sql_mian.UserHost.user, sql_mian.UserHost.password, sql_mian.UserHost.business, sql_mian.UserHost.Asset_group, sql_mian.UserHost.Admin).all() return obj def IsIP(str): p = re.compile('^((25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(25[0-5]|2[0-4]\d|[01]?\d\d?)$') if p.match(str): return True else: return False def IsPort(number): if number >0 and number<65535: return True else: return False def LenGth(password,business,Asset_group,Admin): if len(password)<10 and len(business)<10 and len(Asset_group) and len(Admin): return True else: return False def AddUserHost(ip,port,user,password,business,Asset_group,Admin): ip2=IsIP(str(ip)) port2=int(port) port3=IsPort(port2) if ip2: if port3: if LenGth(password,business,Asset_group,Admin): s8=sql_mian.UserHost(ip=ip,port=port,user=user,password=password,business=business,Asset_group=Asset_group,Admin=Admin) Session.add_all([s8]) Session.commit() return True return False return False def DelUserHost(id): x = Session.query(sql_mian.UserHost).filter_by(id=id).first() if x: Session.delete(x) Session.commit() return True else: return False Session.commit()
首先是登陸頁面
登陸成功之后呢
查看主機詳情
可以添加主機
刪除主機
源代碼如下: