Django中的装饰器,分页,

装饰器:
加入要给一些界面加一个登录权限:
直接上代码

在utils里面:

#装饰器,判断用户是否登录
def require_login(fn):

    def inner(request,*args, **kwargs):
        if request.session.has_key("loginUser"):
            logging.warning("该用户已经登录,视图函数正常访问")
            return fn(request, *args, **kwargs)
        else:
            logging.warning("请先登录!!")
            return render(request,"demo/login.html", {"msg": "当前操作必须登录,请先登录系统"})
    return inner

然后在views里面可以直接调用

分页:

django提供了一个非常简单的分页方法,直接上代码:
from django.core.paginator import Paginator
def index(request):
   # logger = logging.getLogger("django")
    #logger.warning("首页开始运行了……")

    #在缓存中获取数据
    articles =  cacheUtils.getAllArticle()
    
    pageSize = int(request.GET.get("pageSize", settings.PAGE_SIZE))
    pageNow = int(request.GET.get("pageNow", 1))
    paginator = Paginator(articles, pageSize)
    page = paginator.page(pageNow)

    return render(request, "blog/index1.html", {"page": page, "pageSize": pageSize})


在前端界面上:
<div class="col-md-8">
            <!--<div class="page-header">-->
            <!--<h3>热门文章 <small>这里能找到技术前沿的各位大神的文章内容</small></h3>-->
            <!--</div>-->
            <div class="row author-article">
                <div class="tab-content">
                    <div role="tabpanel" class="tab-pane active" id="home">
                        {% for at in page.object_list %}
                        <div class="media">
                            <div class="media-body">
                                <h4 class="media-heading"><a href="{% url 'demo:show_article' at.id %}">{{at.title}}</a></h4>
                                {{at.content | safe}}
                            </div>
                            <div class="media-left media-middle">
                                <a href="#">
                                    <img class="media-object " src="/static/demo/image/articles/1.jpg" alt="图片">
                                </a>
                            </div>
                            <div class="media-bottom text-muted">
                                <span class="glyphicon glyphicon-eye-open">169</span>
                                <span class="glyphicon glyphicon-comment">18</span>
                                <span class="glyphicon glyphicon-heart">200</span>
                                <span>&nbsp;{{at.publishtime}}</span>

                            </div>
                        </div>
                        {% endfor %}
                    </div>
                    <nav aria-label="Page navigation">
                      <ul class="pagination">

                          {% if page.has_previous %}
                           <li>
                              <a href="/demo/index?page_now={{page.previous_page_number}}" aria-label="Previous">
                                <span aria-hidden="true">&laquo;</span>
                              </a>
                            </li>
                          {% endif %}

                          {% for p in page.paginator.page_range %}
                            <li><a href="/demo/index/?page_now={{p}}">{{p}}</a></li>
                          {% endfor %}

                           {% if page.has_next %}
                           <li>
                               <a href="/demo/index?page_now={{page.next_page_number}}" aria-label="Next">
                                   <span aria-hidden="true">&raquo;</span>
                               </a>
                            </li>
                          {% endif %}

                      </ul>
                    </nav>
                </div>
            </div>
        </div>

基本上都是固定用法,可以直接照搬代码。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,645评论 25 708
  • 用两张图告诉你,为什么你的 App 会卡顿? - Android - 掘金 Cover 有什么料? 从这篇文章中你...
    hw1212阅读 12,993评论 2 59
  • 1、通过CocoaPods安装项目名称项目信息 AFNetworking网络请求组件 FMDB本地数据库组件 SD...
    阳明AGI阅读 16,019评论 3 119
  • 核心动画可以在layer上创造复杂的动画,比如修改大小、位置、旋转变换等等,也可以同时修改一个或多个属性。 简单修...
    熊妹妹阅读 1,215评论 0 1
  • 推荐 权力,有时不在决策者手里。实际运作中,权力其实掌握在有信息渠道的人手里。分享自 @得到https://m.i...
    余小刚阅读 168评论 0 0