【OpenStack】OpenStack系列14之Dashboard定制开发
- django概述
- Django设计MVC理念 
- Web工作流程 
- 选择Django原因:MVC、admin管理、自动化ORM、everything is python。
- Django项目开发大概步骤 
- 使用概述- 项目与app,使用model特性必须创建app 
 
- 可以使用pydev自带的django支持进行快速开发。新建project、新建app,配置urls,实现views。url高级用法,一般不这么使用。 
- 模板、static、model逐步添加。Restful风格web开发。Settings.py需要正确设置: Views中可以直接渲染返回:  
- 渲染可以带参数  
- POST请求  
- Django日志处理:配置log
 
- Horizon定制开发- 
http://www.chenshake.com/secondary-development-of-openstack-dashboard/ 
- 简介http://www.metacloud.com/openstack-horizon-controlling-cloud-using-django/    
- Horizon定义公共的可以重用的组件,openstack_dashboard针对openstack的具体的组件,dashboards中为前端页面最主要的几个部分,包含每个pannel的前后端代码。如下图: 
- Admin里面,两个pannelgroup 并且只有admin可见:  
- Dashboard扩展pannel参考:http://docs.openstack.org/developer/horizon/topics/tutorial.html 
- 创建pannelcd /var/www/horizon目录下: mkdir openstack_dashboard/dashboards/admin/mypanel 注册、自动生成相关代码结构: ./run_tests.sh -N -m startpanel mypanel --dashboard=openstack_dashboard.dashboards.admin --target=openstack_dashboard/dashboards/admin/mypanel  
- 注册:修改admin下面的openstack_dashboard/dashboards/admin/dashboard.py,添加mypannel: 
- 重启httpd,刷新页面,mypannel显示在页面中: 
- Horizon定制开发可以参考:http://docs.openstack.org/developer/horizon/py-modindex.html http://my.oschina.net/zhouxingxing/blog/90283 http://www.cloudcraft.cn/add-your-panel-ui-to-horizon/ 或者直接参考admin目录下面其他的代码即可。 修改index.html文件:   修改之后html会更新为修改内容。 
- View可以通过context传递参数到前端。  按照其他的模块,依葫芦画瓢,七改八改就搞定了。 
- Pannel中dataview实现添加tables——修改views,引用tables——返回tables数据——前段渲染 具体代码可以参考: 
 
- 
附录:
013.Dashboard前端页面结构:

013.标准Django Application Stack:

013.增强Horizon application stack:

【OpenStack】OpenStack系列14之Dashboard定制开发的更多相关文章
- OpenStack实践系列⑧可视化服务Horizon之Dashboard演示
		OpenStack实践系列⑧可视化服务Horizon之Dashboard演示 七.可视化服务Horizon之Dashboard演示 仪表板依赖于功能核心服务,包括身份,图像服务,计算和网络两种(neu ... 
- OpenStack实践系列⑨云硬盘服务Cinder
		OpenStack实践系列⑨云硬盘服务Cinder八.cinder8.1存储的三大分类 块存储:硬盘,磁盘阵列DAS,SAN存储 文件存储:nfs,GluserFS,Ceph(PB级分布式文件系统), ... 
- OpenStack实践系列①openstack简介及基础环境部署
		OpenStack实践系列①openstack简介及基础环境部署 一.OpenStack初探1.1 OpenStack简介 OpenStack是一整套开源软件项目的综合,它允许企业或服务提供者建立.运 ... 
- OpenStack实践系列⑦深入理解neutron和虚拟机
		OpenStack实践系列⑦深入理解neutron和虚拟机 五.深入理解Neutron 5.1 虚拟机网卡和网桥 [root@node1 ~]# ifconfig brq65c11cc3-8e: fl ... 
- OpenStack实践系列⑥构建虚拟机实例
		OpenStack实践系列⑥构建虚拟机实例 四.创建一台虚拟机图解网络,并创建一个真实的桥接网络 创建一个单一扁平网络(名字:flat),网络类型为flat,网络适共享的(share),网络提供者:p ... 
- OpenStack实践系列⑤网络服务Neutron
		OpenStack实践系列⑤网络服务Neutron 3.8 Neturn 服务部署 注册neutron服务 [root@node1 ~]# source admin-openrc.sh [root@n ... 
- OpenStack实践系列④计算服务Nova
		OpenStack实践系列④计算服务Nova 3.6 Nova控制节点的部署创建服务的凭证,完成下列步骤: 创建nova用户,并加入到service项目中,赋予admin权限 [root@node1 ... 
- OpenStack实践系列③镜像服务Glance
		OpenStack实践系列③镜像服务Glance 3.5 Glance部署 修改glance-api和glance-registry的配置文件,同步数据库 [root@node1 ~]# vim /e ... 
- OpenStack实践系列②认证服务Keystone
		OpenStack实践系列②认证服务Keystone 三.实战OpenStack之控制节点3.1 CentOS7的时间同步服务器chrony 下载chrony # yum install -y chr ... 
随机推荐
- 改Bug
			一:新闻查询失败 1.velocity:R对象里的变量不区分大小写? 哦,应该是的! 2.表单的button是默认就有提交功能的哦! 3.velocity变量在页面上的解析: 为什么会出错呢? 难 ... 
- Java Web整合开发实战:基于Struts 2+Hibernate+Spring 目录
			第1篇 Java Web开发基础第1章 Web的工作机制( 教学视频:31分钟) 1.1 理解Web的概念 1.1.1 Web的定义 1.1.2 Web的三个核心标准 1.2 C/S与B/S两种软件体 ... 
- Svn-如何清除eclipse中保存的svn用户名和密码
			1. 查看你的Eclipse中使用的是什么SVN Interface windows > prefeSence > Team > SVN #SVN Interface 2. 如果是用 ... 
- 【HDU 2955】Robberies(DP)
			题意是给你抢劫每个银行可获得的钱m和被抓的概率p,求被抓的概率小于P,最多能抢多少钱.01背包问题,体积是m,价值是p.被抓的概率不是简单相加,而应该是1−Π(1−p[i])DP:dp[i]表示抢到i ... 
- BZOJ-2324    营救皮卡丘      最小费用可行流+拆下界+Floyd预处理
			准备一周多的期末,各种爆炸,回来后状态下滑巨快...调了一晚上+80%下午 2324: [ZJOI2011]营救皮卡丘 Time Limit: 10 Sec Memory Limit: 256 MB ... 
- POJ3264 Balanced Lineup
			Balanced Lineup Time Limit: 5000MS Memory Limit: 65536K Total Submissions: 44720 Accepted: 20995 ... 
- 轻量级应用开发之(10) UINavigationController导航控制器
			一 多控制器 1)一个iOS的app很少只由一个控制器组成,除非这个app极其简单2)当app中有多个控制器的时候,我们就需要对这些控制器进行管理3)有多个view时,可以用一个大的view去管理1个 ... 
- spring事务学习(转账案例)(一)
			一.创建数据库并插入数据 create database spring_transaction; use spring_transaction; create table account( id in ... 
- Mac Sublime Text 2 简单使用
			按 Ctrl+` 调出 console 粘贴以下代码到底部命令行并回车: import urllib2,os;pf='Package Control.sublime-package';ipp=subl ... 
- Ubuntu 为网卡配置静态IP地址
			为网卡配置静态IP地址编辑文件/etc/network/interfaces:sudo vi /etc/network/interfaces并用下面的行来替换有关eth0的行:# The primar ... 
