zoukankan      html  css  js  c++  java
  • Django开发笔记五

    Django开发笔记一

    Django开发笔记二

    Django开发笔记三

    Django开发笔记四

    Django开发笔记五

    Django开发笔记六

    1、页面继承

    定义base.html:

    <!DOCTYPE html>
    <html>
    {% load staticfiles %}
    <head>
    .....
    <body>
    {% block content %}
    {% endblock %}
    <div class="footer">
    ....
    </div>
    </body>
    </html>
    

     index.html:

    {% extends 'base.html' %}
    {% block title %}<title>在线学习系统--首页</title>{% endblock %}
    {% load staticfiles %}
    {% block content %}
    ........
    {% endblock %}
    

    2、分页、排序

    分页插件:https://github.com/jamespacileo/django-pure-pagination#settings

    settings.py:

    INSTALLED_APPS = [
    ......
        'pure_pagination',  # 注册分页app
    ]
    
    # 分页
    PAGINATION_SETTINGS = {
        'PAGE_RANGE_DISPLAYED': 10,
        'MARGIN_PAGES_DISPLAYED': 2,
    
        'SHOW_FIRST_PAGE_WHEN_INVALID': True,
    }
    

     views.py:

    from pure_pagination import Paginator, EmptyPage, PageNotAnInteger
    
    def video_list(request):
        video_list = Video.objects.all()
        video_page_count = video_list.count();
        # 分页功能
        try:
            page = request.GET.get('page', 1)  # 获取当前页码,如果没有默认1
        except PageNotAnInteger:  # 如果获取页码出错,默认1
            page = 1
    
        tmp = Paginator(video_list, 2, request=request)  # 执行分页函数,参数1数据库的数据,参数2显示多少条数据,参数3request
        video_page = tmp.page(page)  # 返回一个,包含了分页数据和分页导航的对象
        return render(request, "video_list.html", {"video_page": video_page,
                                                   "video_page_count": video_page_count})
    

     html:

            <div class="list-item-title">视频列表</div>
            <div class="list-item-content clearfix">
                {% for video in video_page.object_list %}
                    <div class="item">
                        <a href="">
                            <img src="{{ MEDIA_URL }}{{ video.image }}">
                            <p class="title">{{ video.name }}</p>
                        </a>
                    </div>
                {% endfor %}
    
            </div>
    
       {% load i18n %}
        <div class="pagination">
            {% if video_page.has_previous %}
                <a href="?{{ video_page.previous_page_number.querystring }}"
                   class="prev">‹‹ {% trans "previous" %}</a>
            {% else %}
                <span class="disabled prev">‹‹ {% trans "previous" %}</span>
            {% endif %}
            {% for page in video_page.pages %}
                {% if page %}
                    {% ifequal page video_page.number %}
                        <span class="current page">{{ page }}</span>
                    {% else %}
                        <a href="?{{ page.querystring }}" class="page">{{ page }}</a>
                    {% endifequal %}
                {% else %}
                    ...
                {% endif %}
            {% endfor %}
            {% if video_page.has_next %}
                <a href="?{{ video_page.next_page_number.querystring }}" class="next">{% trans "next" %} ››</a>
            {% else %}
                <span class="disabled next">{% trans "next" %} ››</span>
            {% endif %}
        </div>
    

    3、ModelForm提交、验证

  • 相关阅读:
    Mutex和RWMutex
    内核态和用户态
    runtime源码
    goroutine的结束与通信
    进程线程协程
    堆和栈
    array和slice区别
    逃逸分析
    单例模式
    WaitGroup用法
  • 原文地址:https://www.cnblogs.com/lanqie/p/7673388.html
Copyright © 2011-2022 走看看