Django模板3

在视图中使用模板

之前我们已经有了自己的视图mysite.views.py中,应该是这样子的

from django.http import HttpResponse
import datetime

def current_dt(request):
    now = datetime.datetime.now()
    html = "<html><body>it is now %s.</body></html>" % now
    return HttpResponse(html)

让我根据Django模板1 和 Django模板2的内容,改造一下,使用模板。

我创建了一个新的视图文件,temp.py,改造后代码如下

 1 import datetime
 2 from django.template import Template,Context
 3 from django.http import HttpResponse
 4
 5 def current_datetime(request):
 6     now = datetime.datetime.now()
 7     t=Template(‘<html><body>time now is {{current_date}}</body></html>‘)
 8     c=Context({‘current_date‘:now})
 9     html = t.render(c)
10     return HttpResponse(html)

导入模块datetime是获取当前时间使用。

导入django.template的Template和Context是为了调用模板。

还记得使用方法吗?

写模板,创建 Template 对象,创建 Context , 调用 render() 方法。

导入django.http的HttpResponse是为了返回相应,生成最终的web页面。

别忘了在urls.py中配置访问路径,如下两句就不多解释了。

from temp import *
url(r‘^time/$‘,current_datetime),

好,我们运行一下试试效果吧。

我们试着给他增加一个过滤器。修改这一行即可。

t=Template(‘<html><body>time now is {{current_date|date:"F j, Y"}}</body></html>‘)

到此为止,我们的网站已经使用了模板系统,但是并没有解决我们的问题,也就是说,模板仍然嵌入在Python代码里,并未真正的实现数据与表现的分离。 下一篇,让我们将模板置于一个 单独的文件 中,并且让视图加载该文件来解决此问题。

Django模板3

时间: 2024-10-12 08:21:55

Django模板3的相关文章

Django模板语言小记

1.blog.views.py  # Create your views here. from django.template import loader,Context from django.http import HttpResponse from blog.models import BlogPost def archive(request):     posts = BlogPost.objects.all()     t = loader.get_template('archive.

Django项目实践2 - Django模板(常用语法规则)

http://blog.csdn.net/pipisorry/article/details/45727309 模板中常用的语法规则 {最新版本的Django语法可能有改变,不支持的操作可能支持了.[HTML教程 - 基本元素/标签及属性]} Django 模板标签 if/else 标签 1. 基本语法格式如下: {% if condition %} ... display {% endif %} 或者: {% if condition1 %} ... display 1 {% elif con

Django -- 模板

一切伟大的行动和思想,都有一个微不足道的开始:   -- 徐志摩<励志天下> 一切能忍受的微不足道,都有一个行动思想在脚下.   -- 小QQ <励志自己> ------------------------------------------------------------------------------------------------------ 前一节,我们把HTML直接硬编码在python中,尽管他便于解释使徒的工作原理,但是却不是一个好主意: 1.对页面设计进行

Django 模板.html中 href参数传入

在Django模板中可能会出现访问多个URL指向同一函数,为减少代码可以利用正则表达式实现 url(r'^remove_userinfo(?P<nid>\d+)/',views.removeuserinfo,name='reinfo'), (?P<nid>\d+)表示此部分的名称为nid,对应removeuserinfo(request,nid)中的nid参数 def removeuserinfo(request,nid): return HttpResponse(nid) 此时

Django 模板中引用静态资源(js,css等)

Django 模板中免不了要用到一些js和CSS文件,查了很多网页,被弄得略晕乎,还是官网靠谱,给个链接大家可以自己看英文的. https://docs.djangoproject.com/en/1.6/howto/static-files/ 大致步骤是这样的: 1.确保setting.py里的installed_apps中包括了django.contrib.staticfiles,没有的话大家给添上就行. 2.同样是在setting.py里面进行添加,我们需要添加静态资源相关的配置.可以这么写

Django模板的使用流程-muahao02目录下测试

在我的云主机上,muahao02的测试: Django模板的使用流程 环境:阿里云主机 步骤: 首先建立blog 这个应用 在blog这个目录下手动建立 templates目录,默认的模板就在这个目录下 vim url.py这个文件 vim views.py这个文件 在一级目录下,执行python manage.py runserver 121.42.138.224:8000 [[email protected] templates]# pwd /root/muahao02/blog/templ

Django模板系统学习整理

block extends include三者的差别跟用法 一.定义基础模板,在html内容中定义多个block块,block由子模板引用同名block块,来决定是否替换这些部分 {% block title %}一些内容,这里可不填{% endblock %} {% block content %}一些内容,这里可不填{% endblock %} {% block footer %}一些内容,这里可不填{% endblock %} 这里 title content footer 不是变量,名字

Django模板1

上一篇中带参数的URLconf虽然可以做到传参动态显示内容,但是最终现实的内容还是硬编码到Python代码中的 1 def hours_ahead(request,phours): 2 try: 3 phours = int(phours) 4 except VauleError: 5 raise Http404() 6 7 dt = datetime.datetime.now() + datetime.timedelta(hours=phours) 8 html = "<html>

转换器2:ThinkPhp模板转Django模板

前天写了个<ThinkPhp模板转Flask模板> 居然被同事鄙视了,原因是他用Django,我用Flask,为了避免被他继续安利Django的强大.我决定写一个Django模板转换器. 为了复用代码,得用继承,我把原代码分成三段,一下子获得了三个转换器. class ConverterTemplateEncoding(object): separators = [('<', '>')] def __init__(self): self.match = {'opening': 0,

Django模板API

基础部分 模板是一个文档或者说一个普通的python字符串由Django模板语言标记而成.一个模板语言可以包括block标签或者是变量. 一个block标签是一个处于模板中的标记,能过完成一些事情. Block的定义看起来有点模糊,这是django开发团队有意为之的.比如一个block标签即可以用来输出内容:也可以被当做一个控制结构(比如if声明或者是for循环)从数据库中抓去数据:或者是通往另一个模板的入口. Block标签由"{%"和"%}"组成. 比如一个模板