(转)Django ====> 实战学习篇十三 分页(Paginator)处理;Django使用内置的admin
原文地址: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/,就可以看到中文的管理界面了。
“某度”空间 http://hi.baidu.com/new/wenjiashe521
cnblogs空间 http://www.cnblogs.com/wenjiashe521/