zoukankan      html  css  js  c++  java
  • 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>
  • 相关阅读:
    Median Value
    237. Delete Node in a Linked List
    206. Reverse Linked List
    160. Intersection of Two Linked Lists
    83. Remove Duplicates from Sorted List
    21. Merge Two Sorted Lists
    477. Total Hamming Distance
    421. Maximum XOR of Two Numbers in an Array
    397. Integer Replacement
    318. Maximum Product of Word Lengths
  • 原文地址:https://www.cnblogs.com/hexintong/p/9967972.html
Copyright © 2011-2022 走看看