horizon学习小结(2)

1、写在前面

      上一篇说到mypanel,这里着重说说source code 。

2、content

      创建mypanel,可以利用如django创建的命令manage.py(和horizon,openstack_dashboard一个文件夹下)来创建,也可以通过run_test.sh来创建,关于这两者的difference 官方里有个答案(The run_tests.sh script provides wrappers around manage.py )(wrappers:包装)。应该两个效果都一样。创建好后的结构如图

 

这里假设创建了access_and_security,以此分析。

打开dashboards下dashboard.py,模仿其他的mypanel定义方式,添加类代码并写入class project 类里的panels里。在access_and_security这个文件夹下__init__.py是自动产生的,panel.py,创建好后这个不需要修改,slug表示id,一般要与文件夹名字一样,name是显示在页面的名字,汉化版的可以在openstack_dashboard/locale/zh_CH/LC_MESSAGES/django.po(这是中英文的显示文件)里修改其对应的中文显示,改过后执行django-admin compolemessages--local=zh_CN。tabs.py是负责分页标签,horizon提供TableTabs基类,作为class的参数传递来定义class。(作为参数传递的类可参考horizon的官方文档提供的内容)。tables.py(这里没有)是在页面显示出的表格,horizon提供DataTable基类,继承DataTable实现自定义的table。tests.py测试,还没具体写过。urls.py是链接views.py里的class名,如urls.py里链接views.py里的IndexView类

views.py

里继承horizon的TabbedTableView,包含了AccessAndSecurityTabs类,这个类在tabs.py代码段的最后,如图tabs.py

(python里类即对象,以面向对象的角度思考问题)。tabs包含的SecurityGroupsTabs,KeypairsTab,FloatingIpsTab,APIAccessTab是在tabs.py里定义的类,每一个类里都会对应一个template_name,这是对应分页显示的页面。

horizon提供了多种view类,views.py主要是来集成table或者tab的,也可以两种都包括。全部写完,重启Apache2,因为horizon是对应这个服务的(service apache2 restart)。

遇到错误的时:vi /var/log/apache2/error.log 查看Apache的错误日志,可以找到错误原因。定位到最后三行,最后一行显示错误的原因,倒数第二行显示错误地方的代码,倒数第三行显示错误的具体位置(行数)。

 

 

  

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值