写在前面
变量空间
Bitcron上对大多数的API,都进行了归类,与日志相关的,调用名字一般都已posts
开头,这个posts
就相当于变量空间。
每个不同的变量空间内,都有各自对应的属性、函数,这些属性或者最终函数运行获得结果,除了特别的数据对象外(比如分页对象),基本都是基本的数据类型,比如整数、字符串、浮点数 .etc.
模板API 与 数据对象
模板API
更倾向于各个namespace内调用某个API从而获得数据,但是数据的具体类型,其属性、字段、函数则会在某个具体的数据对象
中找到。
一般情况下,我们可以使用+d.get_data(*args, **kwargs)
获得了数据,然后再根据数据类型对应的属性分别按需呈现。
自己站点内的某个文件夹,最终呈现出来的是一个数据对象(一般没有特别处理都为dict类型),这个数据对象即使类型不同,Image、Post、Category也好,都会有一个基本的BaseFile属性可以调用,不同类型的不同属性,则在对应的数据对象
文档中可以找到。
本章文档的阅读方式
在本章模板 API
中,主要针对不同变量空间namespace
进行的说明,namespace也可以简单理解成是根据各个API进行的归类。
比如D & Date
表示实际调用的时候是+d.xx
或 +date.xx
,实际调用类似+d.get_data(type="post")
; 而 H & HTML
表示调用的方式为+h.xx
或+html.xx
。同理可推,Posts
这篇文档对应的调用方式+posts.xxx
。
注意事项
不要与默认的变量空间冲突
比如posts
本身作为一个变量空间,但是在实际模板自定义的过程中,仍然可以对posts
进行赋值。
posts = d.get_data(type="post")
类似上面这个代码就不是推荐的方式,因为posts
这个原本作为变量空间的名称被当做一个普通变量被创建出来了。
模板代码空间 (codespace)
这个跟namespace有点不一样,特质mixin
这种在模板内直接创建函数的行为。
在mixin
内的代码块在运行的时候,会有自己特定的一个空间,且与整个模板本身是相对独立的。
在这个代码空间内,不要使用默认的变量空间名作为变量名,以避免潜在的冲突。
尽量不要与常用变量名冲突
比如 post
、category
、image
.etc 这些常见的变量,一般是模板数据对象
对应的变量名,如果没有特别的必要,其它非常用的情况下,或者在其它代码片段空间中,尽量避开使用这些变量名。
分页对象混淆
在d.get_data 中,凡是使用limit参数的,默认都会产生一个分页对象。
如果一个页面内多次调用这个函数(包括posts.categories, images.categories, posts, images 等默认变量默认会使用limit参数),就会产生多个分页对象。
比如页面内是文章列表
+分类列表
,如果没有在获得分类的时候,申明with_page=False
的时候,那么当URL是/xxxx/page/2
的时候,分类列表
可能就是空列表了(因为已经是第二页数据)。