论坛首页 综合技术论坛

Python3.4+Django1.7简单动态模板例子

浏览 7367 次
精华帖 (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"><!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></pre>


4,在HTML写python模板,支持语法,有for,if/else,比较,过滤器等等,有兴趣的朋友可以在官网学习下。


5,启动Django服务。


6,访问http对应的方法吗,结果截图如下:





如果一切,出现上图,就代表我们的模板视图,使用成功!
  • 大小: 93.4 KB
论坛首页 综合技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics