使用嵌入式 python 访问管理门户仪表盘并在网页上显示 cache 表数据
Hi 社区,
在这篇文章中,我将解释如何通过使用嵌入式python访问管理门户系统的仪表盘信息和表数据。
访问管理门户仪表盘
以下是几个步骤:
- 1 : 改变 Namespace 到 %SYS
- 2 : 导入 IRIS python 模块并实例化 "SYS.Stats.Dashboard" 类
- 3 : 访问实例化class类属性
第1步 : 改变 Namespace 到 %SYS
为了获得系统仪表盘信息,我们需要从%SYS命名空间访问 "SYS.Stats.Dashboard "类。
如果不在%SYS命名空间,那么我们必须改变命名空间。
创建Embedded.Utils类来获取或设置命名空间:
///This class will be used to get or set Namespace
Class Embedded.Utils
{
//Get Namespace
ClassMethod GetNameSpace() As %Status
{
Return $namespace
}
//Set Namespace
ClassMethod SetNameSpace(pNameSpace) As %Status
{
zn pNameSpace
Return $namespace
}
}
用 Python 代码写下以下脚本来改变命名空间
#Import iris liabrary
import iris
#Set Namespoace to %SYS if current namespace is not %SYS
if iris.cls("Embedded.Utils").GetNameSpace() != "%SYS":
iris.cls("Embedded.Utils").SetNameSpace("%SYS")
第2步 : 导入 IRIS python 模块并实例化类
调用类方法 'Sample'来访问 "SYS.Stats.Dashboard" 的属性 :
#Import iris liabrary
import iris
#Set Namespoace to %SYS if current namespace is not %SYS
if iris.cls("Embedded.Utils").GetNameSpace() != "%SYS":
iris.cls("Embedded.Utils").SetNameSpace("%SYS")
#A class may be instantiated by calling the class method 'Sample', and then the current value of each property can be accessed.
ref = iris.cls("SYS.Stats.Dashboard").Sample()
第3步 : 访问实例化类属性
这个类包含以下可以使用以下代码访问的属性:
#Import iris liabrary
import iris
#Set Namespoace to %SYS if current namespace is not %SYS
if iris.cls("Embedded.Utils").GetNameSpace() != "%SYS":
iris.cls("Embedded.Utils").SetNameSpace("%SYS")
#A class may be instantiated by calling the class method 'Sample', and then the current value of each property can be accessed.
ref = iris.cls("SYS.Stats.Dashboard").Sample()
#display ApplicationErrors
print(ref.ApplicationErrors)
#display CSP Sessions
print(ref.CSPSessions)
更多信息欢迎访问 iris-python-apps 应用

使用jquery 数据表在web 网页显示cache表数据
以下是显示Security.Users 表的步骤
- 1 : 改变 Namespace 到 %SYS
- 2 : 导入 IRIS python 模块并使用iris.sql.exec() 功能来运行 SQL SELECT 语句来获得结果集
- 3 : 调用结果集 dataframe 功能来获得 dataframe
- 4 : 从dataframe获得header 和列JSON 数据并传给网页
- 5 : 显示数据到jquery数据表
第1步 : 改变 Namespace 到 %SYS
同样上面的 Embedded.Utils 类可以使用来获取或者设置命名空间
#Import iris liabrary
import iris
#Set Namespoace to %SYS if current namespace is not %SYS
if iris.cls("Embedded.Utils").GetNameSpace() != "%SYS":
iris.cls("Embedded.Utils").SetNameSpace("%SYS")
第2步 : 导入 IRIS python 模块并使用iris.sql.exec() 功能来运行 SQL SELECT 语句来获得结果集
导入IRIS模块后我们使用 iris.sql.exec() 来运行 SQL SELECT 语句来获得结果集,
import iris
statement = '''SELECT
ID, AccountNeverExpires, AutheEnabled, ChangePassword, CreateDateTime AS DateCreated, Enabled, ExpirationDate, Flags, Name
FROM Security.Users'''
#Calling embedded python iris.sql.exec class to get result set
resultSet = iris.sql.exec(mySql)
第3步 : 调用结果集 dataframe 功能来获得 dataframe
#Get dataframe by calling resultset dataframe function
dataframe = statement.dataframe()
第4步 : 从dataframe获得header 和列JSON 数据并传给Web网页
#Convert and data to Json by using to_json dataframe method and json loads function
my_data=json.loads(dataframe.to_json(orient="split"))["data"]
#Get columns details
my_cols=[{"title": str(col)} for col in json.loads(df.to_json(orient="split"))["columns"]]
#render html by passing my_data and my_cols variables which will be used to generate datatable
return render_template('tablesdata.html', my_data = my_data, my_cols = my_cols)
第5步 : 显示数据到jquery数据表
用id "myTable" 和javascript来定义表,并填入传递的header 和列数据
<table id="myTable" class="table table-bordered table-striped">
</table>
<script>
$(document).ready(function() {
// parse the data to local variable passed from app.py file
let my_data = JSON.parse('{{ my_data | tojson }}');
let my_cols = JSON.parse('{{ my_cols | tojson }}');
$('#myTable').DataTable( {
"data": my_data,
"columns": my_cols,"} );
} );
这样就好了. 更多信息欢迎访问 iris-python-apps 应用
嵌入式Python官方文档 Embedded Python Overview.
谢谢!
查看原帖 由 @Muhammad Waseem 撰写