[b][color=green][size=large]继上篇散仙写的Django入门,这次我们来看看如何在Django中,动态定义HTML模板,我们都知道,在其他的编程语言里有JSP,ASP,PHP等动态语言,可以直接在这种类似HTML的结构里编写HTML页面,最后在前端渲染展示,其他的编程语言散仙就不多说了,在这里说下JSP吧,在JAVA的世界里,最早的页面也是由Servlet动态生成的,所有的HTML全部写在Servlet里,耦合度极高,维护非常麻烦,后来出来了model,model2,知道现在主流的MVC等风格,jsp文件,本质上也是servlet,jsp的出现使得页面与数据分离,在jsp只要把数据展示模板定义好,然后再servlet里面动态拿到数据的数据库的数据,在返回给jsp,这样就大大简化了web的开发,直至后来的SSH框架更是MVC的经典体现,在python里,实现这样的动静分离的模板也是非常简单的,本篇散仙会用词典模拟一个数据库表对象,然后使用模板文件动态返回数据,并在浏览器中展示。
1,在view里面,定义视图,并采用词典模拟model层实现:
[/size][/color][/b]
2,在url里定义前端映射:
3,编写HTML模板
4,在HTML写python模板,支持语法,有for,if/else,比较,过滤器等等,有兴趣的朋友可以在官网学习下。
5,启动Django服务。
6,访问http对应的方法吗,结果截图如下:
[img]http://dl2.iteye.com/upload/attachment/0102/1215/d1b412a3-2d34-30e4-b449-577b825ca5a2.jpg[/img]
如果一切,出现上图,就代表我们的模板视图,使用成功!
1,在view里面,定义视图,并采用词典模拟model层实现:
[/size][/color][/b]
datas=[
{"id":"1","name":"华为"},
{"id":"2","name":"三星"},
{"id":"4","name":"Apple"},
{"id":"5","name":"中国"},
{"id":"6","name":"JAVA程序员"},
{"id":"7","name":"solr"},
{"id":"8","name":"hadoop编程"},
{"id":"9","name":"python"},
]
def show(request):
return render_to_response('data.html',{'datas':datas})
2,在url里定义前端映射:
from django.conf.urls import patterns, include, url
from django.contrib import admin
#导入view定义的方法
from CurdWeb.views import hello,myhtml,bb,show
urlpatterns = patterns('',
# Examples:
# url(r'^$', 'Django项目.views.home', name='home'),
# url(r'^blog/', include('blog.urls')),
url(r'^admin/', include(admin.site.urls)),
#基于hellword的绑定
url(r'^hello/$',hello),
url(r'^myhtml/$',myhtml),
url(r'^cc/$',bb),
#url映射到view层,并获取展现数据
url(r'^show$',show)
)
3,编写HTML模板
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title>动态展示学生信息数据</title>
</head>
<body>
<table style="color: green" border="2">
<td>编号</td><td>名字</td>
{% for m in datas %}
<tr>
<td>{{ m.id }}</td><td>{{ m.name }}</td>
</tr>
{% endfor %}
</table>
</body>
</html>
4,在HTML写python模板,支持语法,有for,if/else,比较,过滤器等等,有兴趣的朋友可以在官网学习下。
5,启动Django服务。
6,访问http对应的方法吗,结果截图如下:
[img]http://dl2.iteye.com/upload/attachment/0102/1215/d1b412a3-2d34-30e4-b449-577b825ca5a2.jpg[/img]
如果一切,出现上图,就代表我们的模板视图,使用成功!