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提交、验证

  • 相关阅读:
    ORA16014 与 ORA00312
    ORA26687
    ORA32004问题解决
    ORA23616:执行块5失败
    Streams实践之Schemas级复制
    Streams FAQ
    ORA23622: 正在执行操作SYS.DBMS_STREAMS_ADM.MAINTAIN_GLOBAL
    为什么白帽SEO更好?
    HyperV虚拟机安装及网卡无法找到,驱动无法安装解决办法
    Memcahed分布式缓存服务替换Session解决方案——简单介绍[转]
  • 原文地址:https://www.cnblogs.com/lanqie/p/7673388.html
Copyright © 2011-2022 走看看