[django]使用 Paginator 实现分页功能

在 django 中使用 Paginator 可以很方便的实现分页功能,下面就通过一个具体的例子来讲讲如何使用 Paginator。

在 view 中使用 Paginator

from django.core.paginator import Paginator
from django.core.paginator import EmptyPage
from django.core.paginator import PageNotAnInteger
from hello.models import Topic


def index(request):
    limit = 3  # 每页显示的记录数
    topics = Topic.objects.all()
    paginator = Paginator(topics, limit)  # 实例化一个分页对象

    page ...
more ...

[django]使用自定义 context processor 实现模板全局变量

本文使用的是 django 1.4.3。

写一个 context processor 函数

可以把这个函数放在项目的任何地方,本文是放在应用目录下的 context_processors.py 文件中:

from hello.models import Category


def categories(request):  # 只有一个参数(HttpRequeset 对象)
    all_categories = Category.objects.all()
    context = {'categories': all_categories}

    return context  # 返回值必须是个字典

注意:context processor 函数只有一个参数,即 HttpRequest 对象,并且函数的返回值必须是个字典。

修改 settings 文件

修改 TEMPLATE_CONTEXT_PROCESSORS 选项值,添加新建的 ...

more ...

[firefox]在地址栏使用通配符过滤书签及历史记录

通过在地址栏使用相应的通配符从而实现只搜索书签或历史记录的功能。

打开 about:config 搜索 urlbar

about:config urlbar

从上图可以看出,默认情况下相关通配符的功能如下:

browser.urlbar.match.title            #      只匹配标题
browser.urlbar.match.url              @      只匹配 URL
browser.urlbar.restrict.bookmark      *      只搜索书签
browser.urlbar.restrict.history       ^      只搜索历史记录
browser.urlbar.restrict.openpage      %      只搜索所有打开的标签页
browser.urlbar.restrict.tag           +      只搜索标签
browser.urlbar.restrict.typed         ~      只搜索曾经在地址栏输入过的记录(URL + 标题)

例如,只搜索标题包含 firefox 的记录 ...

more ...