浏览 7366 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2014-10-17
继上篇散仙写的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层实现: <pre name="code" class="python">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})</pre> 2,在url里定义前端映射: <pre name="code" class="python">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) ) </pre> 3,编写HTML模板 <pre name="code" class="html">&lt;!DOCTYPE html&gt; &lt;html&gt; &lt;head lang="en"&gt; &lt;meta charset="UTF-8"&gt; &lt;title&gt;动态展示学生信息数据&lt;/title&gt; &lt;/head&gt; &lt;body&gt; &lt;table style="color: green" border="2"&gt; &lt;td&gt;编号&lt;/td&gt;&lt;td&gt;名字&lt;/td&gt; {% for m in datas %} &lt;tr&gt; &lt;td&gt;{{ m.id }}&lt;/td&gt;&lt;td&gt;{{ m.name }}&lt;/td&gt; &lt;/tr&gt; {% endfor %} &lt;/table&gt; &lt;/body&gt; &lt;/html&gt;</pre> 4,在HTML写python模板,支持语法,有for,if/else,比较,过滤器等等,有兴趣的朋友可以在官网学习下。 5,启动Django服务。 6,访问http对应的方法吗,结果截图如下: 如果一切,出现上图,就代表我们的模板视图,使用成功! 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |