django实战1-使用视图和模板显示多行
2012-10-07 19:07
711 查看
测试显示多行
一、初步测试
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/
一、初步测试
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/
相关文章推荐
- [Dynamic Language] Python Django: 模板引擎(4)在视图中使用模板和模板继承
- django在视图中使用模板
- 复习django项目三——视图显示模板templates
- Django模板-在视图中使用模板
- Django模板template(html)中如何使用注释comment,单行注释,多行注释:
- [Django实战] 第9篇 - 表单、视图、模型、模板的交互
- 解决使用Spring Boot开发模板视图修改后刷新不显示问题
- Django之视图与模板以及在模板中使用bootstrap
- VS2008使用问题,打开套用模板页后设计视图无内容显示但调试就有内容(已解决)
- ASP.NET MVC 使用AderTemplate模板引擎进行视图显示
- django在视图中使用模板
- django在视图中使用模板
- [Django模板系统]在视图中使用模板
- django template 基础(二)(在视图中使用模板)
- Thinkphp中使用display()方法显示视图模板,使用show()方法是显示文本内容
- django使用通用视图_模板载入顺序
- [Django实战] 第9篇 - 表单、视图、模型、模板的交互
- 在Django 模板中使用session
- 一个使用django开发的综合成绩管理系统 显示不了验证码
- [Django 1.5] jQuery/Ajax 在Django使用 ,如何更新模板里里变量