博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Django 笔记 模板
阅读量:7110 次
发布时间:2019-06-28

本文共 1909 字,大约阅读时间需要 6 分钟。

在前文中写道,把html直接hardcode在程序中并不是一个好方法

now=datetime.datetime.now()dt=datetime.datetime.now()+datetime.timedelta(hours=offset)html="当前时间%s
时差%s小时,%s."%(now,offset,dt)returnHttpResponse(html)
  • 前台页面变更需要改程序,对于责权分开以及部门沟通都是一个挑战

  • 单一的程序变得混乱,这又离开了当初用django,jinja,flask等框架的初衷

模板原理是调用模板对象渲染render的方法,传入一套变量content,返回一个基于末班的字符串,模板中的变量和标签被context替换后显示在前台。

View.py

from django.http import HttpResponsefrom django.template import Context,Templatefrom django.shortcuts import render, render_to_responseimport datetimefrom django.template.loader import get_templatefrom django.template import Contextdef current_datetime(request):    now = datetime.datetime.now()    t = get_template('current_datetime.html')    html = t.render(Context({'current_date': now}))return HttpResponse(html)

 

t = get_template('current_datetime.html')
TemplateDoesNotExist at /time/

假设你的 DEBUG项设置为 True,而你有没有建立current_datetime.html 这

个模板文件,你会看到Django的错误提示网页,告诉你发生了 TemplateDoesNotExist 错误。

在template 目录下简历current_datetime.html然后刷新页面

时间参数通过模板传递过来了

原理是t.render_to_response() 载入一个模板文件,然后context渲染,最后返回httpResponse对象给用户

Template

通过模板传出current_date参数至视图,视图接受后解释或者运行程序渲染后返回httpresponse 结果

View.py
def current_datetime(request):    now = datetime.datetime.now()return render_to_response('current_datetime.html',{'current_date':now})

 

当然一个视图可以使用多个模板进行控制

t = get_template('dateapp/current_datetime.html')

return render_to_response('dateapp/current_datetime.html', {'current_date': now})

url 导向 urls.py

url(r'^mypage/',myapp.mypage)
 

视图views.py

def mypage(request):    now = datetime.datetime.now()return render_to_response('mypage.html',{'current_date':now})

新建include 目录,新建mypage.html 作为模板,nav.html作为头文件,foot.html作为脚文件

    
    
Title{% include "includes/nav.html" %}

{
{ current_date }}

{% include "includes/foot.html" %}

top.html
 
    nav page    You are in: {
{ current_section }}
 

 
Foot.html
 

foot page

转载地址:http://bylhl.baihongyu.com/

你可能感兴趣的文章
DevExpress的安装方法与破解教程【转】
查看>>
判断浏览器类型的脚本
查看>>
手机市场硝烟弥漫,心系天下三星W2017价格上扬仍一机难求
查看>>
蔚来汽车更新招股书:IPO后李斌将拥有48%投票权
查看>>
快手成央视春晚官方合作伙伴 助力春晚传播
查看>>
春运服务“铁骑”返乡8年女交警:寒风中随车返乡孩子少了
查看>>
「Python」一文读懂装饰器
查看>>
TreeMap就这么简单【源码剖析】
查看>>
(?<=p)与:nth-child()的相似性分析
查看>>
携程内部海量CRN项目解决方案
查看>>
阿里云 MVP技术直播——缪政辉教你如何搭建万能LNMP环境
查看>>
深入理解工厂模式
查看>>
看得见的数据结构Android版之二分搜索树篇
查看>>
实现Treeset
查看>>
Android Jetpack 助推应用开发 | 中文字幕视频介绍
查看>>
Es2016、2017新特性(上)
查看>>
聊天系统很复杂?前端工程师也能完成!
查看>>
一步一步学习JNI
查看>>
【译】 WebSocket 协议第九章——扩展(Extension)
查看>>
如何架构一个数据工程
查看>>