zoukankan      html  css  js  c++  java
  • django实战1使用视图和模板显示多行

    测试显示多行
    一、初步测试
    1、视图
    # vim mysite/views.py
    def more_lines(request):
    x=range(1,100)
    return render_to_response('more_lines.html',locals())
    2、模板
    # vim mysite/templates/more_lines.html
    {% extends "base.html" %}
    {% block title %}Test 100 lines{% endblock %}
    {% block content %}
    <table border="1">
    <tr>
    <td>line</td>
    </tr>
    <tr>
    <td>99999</td>
    </tr>
    </table>
    <table border="1">
    <tr>
    <td>line</td>
    </tr>
    {% for item in x %}
    <tr>
    <td>{{ item }}</td>
    </tr>
    {% endfor %}
    </table>
    {% endblock %}
    3、URL
    # vim mysite/urls.py
    from django.conf.urls import patterns, include, url
    from mysite.views import hello,current_datetime,hours_ahead,more_lines
    urlpatterns = patterns('',
    url(r'^lines/$',more_lines),
    }
    4、显示
    http://192.168.1.250:8000/lines/
    100行都全部显示了,控制一次显示10行
    5、总结
    控制显示多少行,不应该在模板里控制,而是应该在视图里控制
    二、改进
    如果想自己控制显示的行呢?
    如果想显示5-10,或者5-12行呢
    分析
    如果想自己控制显示的行,传入一个参数即可。
    如果要显示5-10,并且明确每页显示都是5行(可以用列表的步进),导入一个开始显示行的参数即可
    如果每页显示行数和从哪行显示都不确定,需要传入两个参数,一个开始,一个步进。

    假设一共有100行数据
    1、控制显示到多少行
    1)视图
    # vim mysite/views.py
    def more_lines(request,sclice):
    x=range(1,100)
    try:
    sclice=int(sclice)
    except ValueError:
    raise Http404()
    else:
    x=x[:sclice]
    return render_to_response('more_lines.html',locals())
    2)、URL
    from django.conf.urls import patterns, include, url
    from mysite.views import hello,current_datetime,hours_ahead,more_lines
    urlpatterns = patterns('',
    url(r'^lines/(\d{1,2})/$',more_lines),#只有100行,最多让显示99行了
    }
    3)访问测试
    http://192.168.1.250:8000/lines/18/

    2、每页显示10行,传入开始显示的行
    # vim mysite/views.py
    def more_lines(request,start):
    x=range(1,100)
    try:
    start=int(start)
    except ValueError:
    raise Http404()
    else:
    x=x[start:start+10]
    return render_to_response('more_lines.html',locals())
    访问测试
    http://192.168.1.250:8000/lines/19/
    3、如果每页显示行数和从哪行显示都不确定,需要传入两个参数,一个开始,一个步进。这里还是用位置参数,应该可以用关键词参数,目前还不会
    # vim mysite/views.py
    def more_lines(request,start,step):
    x=range(1,100)
    try:
    start=int(start)
    step=int(step)
    except ValueError:
    raise Http404()
    else:
    x=x[start:start+step]
    return render_to_response('more_lines.html',locals())
    URL
    url(r'^lines/(\d{1,2})/(\d)/$',more_lines),
    控制步进在10内
    http://192.168.1.250:8000/lines/80/9/

  • 相关阅读:
    一行代码解决各种IE兼容问题,IE6,IE7,IE8,IE9,IE10
    table设置表格有滚动条
    Bootstrap data-toggle 元素 终止了链接默认行为,加入pill ,开启链接
    table的border-radius
    HTML之电话: 邮箱: 网址
    MySQL精华笔记
    hadoop集群配置全过程
    H5 input默认数字键盘,显示为密码格式
    ios中文模糊搜索兼容问题
    Yii2学习笔记---内附GridView配置总结
  • 原文地址:https://www.cnblogs.com/diege/p/2714314.html
Copyright © 2011-2022 走看看