• django-内置用户验证&内置分页器


    django自带的user验证

     1 from django.shortcuts import render,redirect
     2 from django.contrib import auth
     3 from django.core.paginator import Paginator,EmptyPage
     4 from django.contrib.auth.models import User
     5 from app01 import models
     6 # Create your views here.
     7 def login(request):
     8     if request.method=='POST':
     9         username=request.POST.get('username')
    10         password=request.POST.get('password')
    11         user=auth.authenticate(username=username,password=password)
    12         if user:
    13             auth.login(request,user)
    14             return redirect('/index/')
    15     if request.method=="GET":
    16         return render(request,'login.html')
    17 
    18 def index(request):
    19     if not request.user.is_authenticated:
    20         return redirect('/login/')
    21     username=request.user.username
    22     user_list=User.objects.all()
    23     return render(request,'index.html',{'name':username,'user_list':user_list})

    django 自带的 分页器

     1 from django.shortcuts import render,redirect
     2 from django.core.paginator import Paginator,EmptyPage
     3 from app01 import models
     4 # Create your views here.
     5 
     6 def book(request):
     7     '''
     8     学习分页器
     9     :param request:
    10     :return:
    11     '''
    12     ### 批量插入数据###
    13     '''
    14     book_list=[]
    15     for i in range(100):
    16         temp=models.Book(name='book%s'%(i),price=i*i)
    17         book_list.append(temp)
    18     models.Book.objects.bulk_create(book_list)
    19     '''
    20     ###分页器的学习###
    21     '''
    22     paginator=Paginator(book_list,per_page=10)
    23     print("page_range:",paginator.page_range)#页面列表
    24     print("count:",paginator.count)#数据总数
    25     print("num_pages:",paginator.num_pages)#总页数
    26     print( book_page_list=paginator.page(1))
    27     print(book_page_list.object_list,book_page_list.has_previous(),book_page_list.has_next(),book_page_list.previous_page_number(),book_page_list.next_page_number())
    28     return render(request,'book.html',locals())
    29     '''
    30     book_list=models.Book.objects.get_queryset().order_by('id')
    31     current_page=int(request.GET.get('page',1))
    32     paginator=Paginator(book_list,3)
    33     page_range=None
    34     try:
    35         book_page_list=paginator.page(current_page)
    36 
    37 
    38         if paginator.num_pages>11:
    39             if current_page-5<1:
    40                 page_range=range(1,12)
    41             elif current_page+5>paginator.num_pages:
    42                 page_range=range(paginator.num_pages+1-11,paginator.num_pages+1)
    43             else:
    44                 page_range=range(current_page-5,current_page+5+1)
    45         else:
    46             page_range=paginator.page_range
    47     except EmptyPage:
    48         book_list=paginator.page(1)
    49     return render(request,'book.html',{'page_range':page_range,'book_page_list':book_page_list})

    分页器的前端显示

     1 <!DOCTYPE html>
     2 <html lang="en">
     3 <head>
     4     <meta charset="UTF-8">
     5     <title>Title</title>
     6     <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css">
     7 </head>
     8 <body>
     9 <h2>this is book page.</h2>
    10 <ul>
    11     {% for book in book_page_list %}
    12         <li>{{ book.name }}-----{{ book.price }}</li>
    13     {% endfor %}
    14 
    15 </ul>
    16 <div>
    17     <nav aria-label="Page navigation">
    18         <ul class="pagination">
    19             {% if book_page_list.has_previous %}
    20                  <li>
    21                     <a href="?page={{ book_page_list.previous_page_number }}" aria-label="Previous">
    22                         <span aria-hidden="true">&laquo;</span>
    23                     </a>
    24                  </li>
    25             {% else %}
    26                 <li class="disabled">
    27                     <a href="#" aria-label="Previous">
    28                         <span aria-hidden="true">&laquo;</span>
    29                     </a>
    30                  </li>
    31             {% endif %}
    32 
    33             {% for item in page_range %}
    34                 {% if current_page == item %}
    35                      <li class="active"><a href="?page={{ item }}">{{ item }}</a></li>
    36                 {% else %}
    37                      <li ><a href="?page={{ item }}">{{ item }}</a></li>
    38                 {% endif %}
    39             {% endfor %}
    40             {% if book_page_list.has_next %}
    41                 <li>
    42                     <a href="?page={{ book_page_list.next_page_number }}" aria-label="Next">
    43                         <span aria-hidden="true">&raquo;</span>
    44                     </a>
    45                 </li>
    46             {% else %}
    47                 <li class="disabled">
    48                     <a href="#" aria-label="Next">
    49                         <span aria-hidden="true">&raquo;</span>
    50                     </a>
    51                 </li>
    52             {% endif %}
    53 
    54         </ul>
    55     </nav>
    56 </div>
    57 </body>
    58 </html>
  • 相关阅读:
    Maven POM元素继承
    Maven模块聚合
    Maven生命周期小记
    maven配置远程仓库
    Maven把自己的包部署到远程仓库
    java基础知识之一:命名规则(包名、类名、变量名、方法名)
    httpclient+maven+excel+testng 框架实例----02 之代码详解 之配置报告输出目录
    httpclient+maven+excel+testng 框架实例----02 之代码详解
    httpclient+maven+excel+testng 框架实例----02 之项目目录结构及相关配置文件
    httpclient+maven+excel+testng 框架实例----02 之配置pom文件
  • 原文地址:https://www.cnblogs.com/hexintong/p/9967972.html
Copyright © 2020-2023  润新知