海上月明

          editer by sun
          posts - 162, comments - 51, trackbacks - 0, articles - 8
             :: 首頁 :: 新隨筆 ::  :: 聚合  :: 管理

          DjangoBook note

          Posted on 2006-11-28 20:27 pts 閱讀(268) 評論(0)  編輯  收藏 所屬分類: Django

          DjangoBook note
          模板
          1、用 html 文件保存,設(shè)計的變量用 {{value_name}} 填充
          2、需 from django.template import Template,Context 導(dǎo)入庫
          3、t=Template( 模板文件名 )?
          ?c=Context( 模板變量內(nèi)容 )
          ?t.render(c)# 可以輸出模板內(nèi)容
          4、?? 下面這段不理解什么意思
          ?To prevent this, set a function attribute alters_data on the method. The template system won ’ t execute a method if the method has alters_data=True set. For example:
          ?def delete(self):
          ??# Delete the account
          ?delete.alters_data = True
          5、 Context 對象支持 push()/pop() 方法
          6、 模板文件中的標簽:
          ?沒有 elseif;
          ?For 循環(huán)中沒有 break 和 continue
          ?For 循環(huán)中的幾個屬性:
          ??? forloop.counter???? # 當(dāng)前循環(huán)的次數(shù),從 1 開始
          ??? forloop.counter0??? # 當(dāng)前循環(huán)的次數(shù),從 0 開始
          ??? forloop.revcounter??????? # 當(dāng)前循環(huán)剩余次數(shù),從總循環(huán)次數(shù)遞減
          ??? forloop.revcounter0?????? # 當(dāng)前循環(huán)剩余次數(shù),從總循環(huán)次數(shù) -1 遞減
          ??? forloop.first???????????? #boolean 值,如果為第一次循環(huán),值為真
          ??? forloop.last????????????? # 同上
          ??? forloop.parentloop??????? # 引用父循環(huán)的 forloop 對象
          ?ifequal A B? # AB 只能是模板變量、字符串、數(shù)字
          ??? pass #如果 A B 相等則執(zhí)行
          ?else
          ??? pass #否則執(zhí)行
          ?endifequal
          ?{#?? #}????? #注釋
          ?{{A|B:”s”}}???????? # 對 A 執(zhí)行 B 過濾, B 過濾可以有參數(shù)
          ?? 幾個過濾器:
          ?? addslashes??? 加反斜杠
          ?? Date????????? 格式化日期為字符串
          ?? escape??????? 轉(zhuǎn)換為網(wǎng)頁編碼
          ?? length??????? 長度
          7、 模板不能建立一個變量或者改變一個變量的值;不能調(diào)用原生的 python 代碼
          8、 在 setting.py 中制定模板文件存放的目錄( EMPLATE_DIRS ),例:
          ?TEMPLATE_DIRS = (
          ??'/home/django/mysite/templates',
          ?)
          ?不要忘了最后的逗號,除非你將序列()換成列表 [] ,但效率會降低;目錄用 / 間隔
          9、 使用模板:
          ?from django.shortcuts import render_to_response
          ?import datetime

          ?def current_datetime(request):
          ??now = datetime.datetime.now()
          ?return render_to_response('current_datetime.html', {'current_date': now})
          ?可以將填充到模板的變量換為locals(),但性能會有所下降,如
          ?def current_datetime(request):
          ??current_date = datetime.datetime.now()
          ????return render_to_response('current_datetime.html', locals())
          10、如果要引用設(shè)定的模板目錄中子目錄的模板文件 ;
          ?t = get_template('dateapp/current_datetime.html')
          11、模板可嵌套,模板文件名可用變量
          ?{% include 'includes/nav.html' %}
          ?{% include template_name %}
          12、模板繼承,使用 extends 和一個特殊的標簽 block ,例:
          ?#base.html
          ?<head>
          ?<title>
          ??{% block title %}標題{% endblock %}
          ?</title>
          ?</head>
          ?<body>
          ?{% block content %}內(nèi)容{% endblock %}
          ?{% block footer %} 頁尾{% endblock %}
          ?</body>
          ?</html>
          ? 下面的模板繼承自 base.html
          ?{% extends "base.html" %}???? #這一行必須是第一個模板標簽行
          ?{% block title %} 我的標題 {% endblock %}
          ?{% block content %}
          ??<p> 我的內(nèi)容 </p>
          ?{% endblock %}?? #不一定要重新定義父模板中的每個模板塊
          ?通過 block.super 引用父模板塊內(nèi)容

          主站蜘蛛池模板: 云霄县| 台南市| 涟源市| 景谷| 加查县| 崇阳县| 班玛县| 高青县| 日土县| 牙克石市| 襄樊市| 青岛市| 东源县| 特克斯县| 乡宁县| 交口县| 镇坪县| 靖远县| 抚顺县| 水富县| 罗甸县| 黄梅县| 连云港市| 津南区| 古浪县| 包头市| 股票| 上林县| 鄂伦春自治旗| 胶南市| 赤峰市| 淮北市| 秦安县| 扎兰屯市| 陆河县| 安化县| 萨迦县| 合阳县| 错那县| 亚东县| 武宣县|