Django系列操做

每次用到都去百度找....找的還不行~~得本身改~~耗時耗力雖然不難~~~直接貼代碼記錄下方便本身用~~~~前端

Django之分頁

定義成一個塊,直接引用到對應的位置便可。。。ajax

<div class="container">
    <nav aria-label="Page navigation">
      <ul class="pagination">

        <!--上一頁-->
        <li class="{% if not page_info.page.has_previous %}disabled{% endif %}">
          {% if page_info.page.has_previous %}
            <a href="{{ url }}?page={{ page_info.page.previous_page_number }}" aria-label="Previous">
          {% endif %}
            <span aria-hidden="true">&laquo;</span>
          </a>
        </li>

        <!--頁碼-->
        <!--這裏展現頁碼使用傳遞過來的dis_range -->
        {% for num in page_info.dis_range %}
        <li class="{% if num == page_info.page.number %}active{% else %}{% endif %}" >
          <a href="{{ url }}?page={{ num }}">{{ num }}</a>
        </li>
        {% endfor %}

        <!--下一頁-->  
        <li class="{% if not page_info.page.has_next %}disabled{% endif %}">
          {% if page_info.page.has_next %}
            <a href="{{ url }}?page={{ page_info.page.next_page_number }}" aria-label="Next">
          {% endif %}
            <span aria-hidden="true">&raquo;</span>
          </a>
        </li>

      </ul>
    </nav>
  </div>
前端代碼

直接將下面代碼複製,而後調用方法,傳入的參數必須爲可迭代對象。數組

  • data["page"]爲內容
  • data爲頁碼

def create_page(request, object_list, per_page=20):
    '''

    :param request:
    :param obj_list:
    :param page_shows: 每頁顯示多少數據
    :return:
    '''
    paginator = Paginator(object_list, per_page)
    # 取出當前須要展現的頁碼, 默認爲1
    page_num = request.GET.get('page', default='1')
    # 根據頁碼從分頁器中取出對應頁的數據
    try:
        page = paginator.page(page_num)
    except PageNotAnInteger as e:
        # 不是整數返回第一頁數據
        page = paginator.page('1')
        page_num = 1
    except EmptyPage as e:
        # 當參數頁碼大於或小於頁碼範圍時,會觸發該異常
        print('EmptyPage:{}'.format(e))
        if int(page_num) > paginator.num_pages:
            # 大於 獲取最後一頁數據返回
            page = paginator.page(paginator.num_pages)
        else:
            # 小於 獲取第一頁
            page = paginator.page(1)

    # 這部分是爲了再有大量數據時,仍然保證所顯示的頁碼數量不超過10,
    page_num = int(page_num)
    if page_num < 6:
        if paginator.num_pages <= 10:
            dis_range = range(1, paginator.num_pages + 1)
        else:
            dis_range = range(1, 11)
    elif (page_num >= 6) and (page_num <= paginator.num_pages - 5):
        dis_range = range(page_num - 5, page_num + 5)
    else:
        dis_range = range(paginator.num_pages - 9, paginator.num_pages + 1)
    data = {
        "page": page,
        "paginator": paginator,
        "dis_range": dis_range,
    }
    return data
Python代碼

Django之請求時獲取數組

不常常用.....每次用就想不起來~~百度的方式也要百度幾回才能找到合適的答案ide

item_list = request.GET.getlist("item_list[]")

# 爲何要加這個[]?由於我用的是ajax的請求方式,ajax會自動在後面添加一個[],form提交方式不須要。
View Code

生成requirements.txt文件

在Pycharm中>打開Django項目>打開Terminal框>輸入下面命令,便可!ui

pip3 freeze > requirements.txt  # 生成

pip3 install -r requirements.txt  # 安裝命令

定時任務

 

 

 

 

 

 

 

 

更新中.................url

相關文章
相關標籤/搜索