XBlock的创建
edX 平台上创建XBlock的过程。
参考官方文档:http://xblock.readthedocs.org/en/latest/getting_started.html
一、需要的背景知识:
Git,Github,Python中的虚拟环境,Shell配置文件(例如:.bashrc/.bash_profile)
二、开始
创建一个新的XBlock意味着用从XBlock继承的类创建一个可安装的Python套件。听起来很复杂,但实际上并不复杂
1.先决条件:
为了使用XBlock我们需要一些安装好的软件:
2)创建Python虚拟环境,可选:PyEvn,VirtualEnv,VirtualEnvWrapper
2.开始配置XBlock Repo
1). XBlock 代码在Github上。可以通过下面的命令从github上两获得XBlock repo:
$ git clonehttps://github.com/edx/XBlock.git
2). 为你的XBlock 开发工作创建一个虚拟环境
3). 激活你的虚拟环境,安装必要的Python 包:
$ pip install -r requirements.txt
3.创建一个新的XBlock
创建一个新的XBlock最简单的方式就是使用script/startnew.py
这个脚本在XBlock SDK repo中:
https://github.com/edx/xblock-sdk
为你的开发工作创建一个目录,在XBlock目录之外,我们可以叫它~/edxwork,从这里运行startnew.py 脚本。
$ cd ~
$ mkdir edxwork
$ cd edxwork
$ /path/to/xblock-sdk/script/startnew.py
这个脚本需要两部分信息,这两部分信息都和你的XBlock的名字有关:一个简短的名字你可以用来作目录名,和一个Python类名。你可以选择“myxblock”作为简短的名字。“MyXBlcok”作为类名。我们将在下面的操作指南中使用这两个名字。你的文件将会用你实际给的名字来命名。
当脚本写好后,你就在完整的XBlock工作目录中有一个myxblock目录。当然,这只是你的XBlock的样板文件,现在你要开始写你自己的代码。
你的大多数工作将会在
myxblock/myxblock/myxblock.py这个文件中完成。这个文件中包含MyXblock类。在文件中有“TO-DO”注释,指示你在哪里作改动:
# TO-DO: change this view to display your data your own way.
defstudent_view(self, context=None):
etc...
4.写你的XBlock
现在开始困难的部分!你要修改myxlock.py和生成的XBlcok中的其他文件,才能让你的XBlock做你想做的事。
1)定义你的fields
第一步就是定义你的fields.这是你的XBlock将储存的数据的声明。XBlockfields有丰富的辖域机制可以让你和特定的模块和用户连接数据。有关Field的详细信息请参考:
http://xblock.readthedocs.org/en/latest/guide/xblock.html#guide-fields
2)定义你的view(视图)
视图是一个函数,创建HTML来在一个课程中展示你的block。它可能是一个你的数据简单透视图。你也可以有复杂的逻辑来决定展示什么内容。
很多XBlcok只需要一个简单的视图,叫“student_view”
你的视图不仅可以包含HTML,也可以是Javascript,css,用来支持HTML
3)定义你的handlers
如果你的XBlock是交互式的,你就需要从Javascript接收事件。一个handler是一个绑定到URL的函数。你可以使用在Javascript中的URL和服务器交流。
你可以根据需要定义多个handler,命名也是随意的。
5.测试你的XBlock
测试你的XBlock很重要,让它做你想让它做的事并在你需要的环境中运行。
要运行你的XBlock应用程序,你需要安装它。使用pip,你能安装你的XBlock,使你的工作树(你编程的代码)是安装的版本。它使得改变代码,查看更改更容易,不需要复杂的循环edit-install-run。
使用pip安装你的Block
$ cd ~/edxwork
$ pip install -e myxblock
1)使用工作台测试
最简单的测试环境是XBlockworkbench(工作台),它可以在XBlock SDK中找到
http://xblock.readthedocs.org/en/latest/getting_started.html
2)使用edX LMS测试。(学习管理系统)
参考测试文档
http://edx-developer-guide.readthedocs.org/en/latest/extending_platform/xblocks.html#testing)
6.部署你的XBlock
参考部署文档
7.把你的XBlock提交到edX
如果想让你的XBlock在edx.org可用,请做下面的步骤:
1).把你的XBlock上传到一个公开的Git 仓库。我们建议Github
2). 创建一个针对edx-platform的pull请求。但在请求中不要包含你的XBlock代码。相反,在requriement file (https://github.com/edx/edx-platform/blob/master/requirements/edx/github.txt)中添加一行,指示你的XBlock要使用哪个版本。这行应该是你的pull请求中唯一更改的地方。另外,在你的pull请求描述中,请包含一个指向XBlock代码所在主机的链接。
3).edx的开发者将会看到pull请求,检查你的XBlock确保它可以和edx平台的其它部分安全的集成。
4).为了加快检查的进程,请在pull请求中包含并于你的XBlock功能的全面的描述,以至于我们能找到为你检查的最佳人选。