您的位置:首页 > 编程语言 > Go语言

(转)Django ====> 实战学习篇十三 分页(Paginator)处理;Django使用内置的admin

2012-11-27 15:24 721 查看
原文地址:http://blog.csdn.net/thinkinside/article/details/7246621

源代码下载地址:留言写下邮箱地址,一天内会发送给你全部源代码


分页(Paginator)


订单或者其他越来越多的时候需要分页处理;

分页是web应用的常用手法,django提供了一个分页器类Paginator(django.core.paginator.Paginator),很容易实现分页的功能,该类有两个构造参数,一个是数据的集合,一个是每页放多少数据;

使用方法集合如下:

$python manage.py shell

>>> from django.core.paginator import Paginator

>>> objects = ['john', 'paul', 'george', 'ringo']

>>> p = Paginator(objects, 2)      #每页两条数据的一个分页器
>>> p.count        #数据总数
4

>>> p.num_pages      #总页数
2

>>>p.page_range       #页码的列表
[1, 2]

>>> page1 = p.page(1)     #第1页
>>> page1

<Page 1 of 2>

>>> page1.object_list     #第1页的数据
['john', 'paul']

>>> page2 = p.page(2)

>>> page2.object_list      #第2页的数据
['george', 'ringo']

>>> page2.has_next()     #是否有后一页
False

>>> page2.has_previous()   #是否有前一页
True

>>> page2.has_other_pages()   #是否有其他页
True

>>> page2.next_page_number()  #后一页的页码
3

>>> page2.previous_page_number()  #前一页的页码

1

>>> page2.start_index()   # 本页第一条记录的序数(从1开始)

3

>>> page2.end_index()    # 本页最后录一条记录的序数(从1开始)

4

>>> p.page(0)               #错误的页,抛出异常
...EmptyPage: That page number is less than 1

>>> p.page(3)              #错误的页,抛出异常
...EmptyPage: That page contains no results


前边scaffold生成的内容里边已经包含了分页的功能,以后可以在view函数和模板中使用分页器这个类了。

内置的Admin管理用户

到目前为止,我们开发的所有功能都是匿名访问的,这显然不够安全。通常我们会要求注册的用户通过用户名和密码登录,只有登录后的用户才可以管理产品。套用专业的说法就是:第一步是认证,验证用户是否是他所宣称的那个人;第二步是授权,验证用户是否拥有执行某种操作的权限。

1.4版本的django中:首先修改settings文件:

INSTALLED_APPS = (
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
#'django.contrib.sites',
#'django.contrib.messages',
#'django.contrib.staticfiles',

# Uncomment the next line to enable the admin:
'django.contrib.admin',     这一行本来是注释着的 现在给注释去掉
# Uncomment the next line to enable admin documentation:
# 'django.contrib.admindocs',
'depot.depotapp',
'django-groundwork',
'djangorestframework',
)


然后修改urls.py文件:

from django.contrib import admin
admin.autodiscover()

url(r'^admin/', include(admin.site.urls)),

urls文件中有这三行,我们把之前有的注释给去掉就行了


然后进行命令:

python manage.py syncdb


创建数据库表,过程中会提示进行创建管理员。

管理员也可以手动创建:

$ python manage.py createsuperuser
Username (Leave blank to use 'holbrook'):
E-mail address: a@b.com
Password:
Password (again):
Superuser created successfully.
holbrook-wongdemacbook-pro:depot holbrook$ python manage.py syncdb
Creating tables ...
Creating table auth_permission
Creating table auth_group_permissions
Creating table auth_group
Creating table auth_user_user_permissions
Creating table auth_user_groups
Creating table auth_user
Creating table auth_message


此时访问http://localhost:8000/admin/,就可以看到中文的管理界面了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: