Django系列操作

每次用到都去百度找....找的还不行~~得自己改~~耗时耗力虽然不难~~~直接贴代码记录下方便自己用~~~~

Django之分页

定义成一个块,直接引用到对应的位置即可。。。

<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之请求时获取数组

不经常用.....每次用就想不起来~~百度的方式也要百度几次才能找到合适的答案

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

# 为什么要加这个[]?因为我用的是ajax的请求方式,ajax会自动在后面添加一个[],form提交方式不需要。
View Code

生成requirements.txt文件

在Pycharm中>打开Django项目>打开Terminal框>输入下面命令,即可!

pip3 freeze > requirements.txt  # 生成

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

定时任务

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

原文地址:https://www.cnblogs.com/Dream-huang/p/10864186.html