摘要:概述定義模板變量要遵守標(biāo)識符規(guī)則語法在模板中使用點(diǎn)語法,按順序查詢字典查詢屬性或者方法查詢數(shù)字索引查詢?nèi)绻褂玫淖兞坎淮嬖?,則插入空字符串在模板中調(diào)用對象的方法,但是不能給函數(shù)傳參示例標(biāo)簽語法作用在輸出中創(chuàng)建文本控制邏輯或循環(huán)加載外
概述 定義模板 變量
要遵守標(biāo)識符規(guī)則語法: {{ var }}
在模板中使用點(diǎn)語法,按順序查詢:字典查詢;屬性或者方法查詢;數(shù)字索引查詢
如果使用的變量不存在,則插入空字符串
在模板中調(diào)用對象的方法,但是不能給函數(shù)傳參
示例
標(biāo)簽sunck is a good man
he is {{ age }} years old
{{ stu.name }}--{{ stu.age }}--{{ stu.grade }}
*{{ name }}*
{{ stu.say }}
語法:{% tag %}作用: 在輸出中創(chuàng)建文本;控制邏輯或循環(huán);加載外部信息到模板中使用
if
{% if 表達(dá)式 %} 語句 {% endif %} {% if 表達(dá)式 %} 語句1 {% else %} 語句2 {% endif %} {% if 表達(dá)式1 %} 語句1 {% elif 表達(dá)式2 %} 語句2 {% elif 表達(dá)式3 %} 語句3 …… {% else %} 語句esunck is a handsome man!
{% if age > 18 %}sunck is a nice man
{% else %}sunck is a good man
{% endif %} {% endif %}
for
{% for 變量 in 集合 %} 語句 {% endfor %} {% for 變量 in 集合 %} 語句1 {% empty %} 語句2 # 當(dāng)沒有該集合或者集合為空的時候執(zhí)行empty標(biāo)簽下的語句2
comment
作用 : 注釋 單行注釋({#sunck is a handsome man!
#}) 多行注釋
{% comment %} 注釋內(nèi)容 {% endcomment%} # 可以注釋HTML代碼和邏輯控制代碼
ifequal/ifnotequal
作用: 判斷是否相等/不相等
# 如果值1等于值2,則執(zhí)行語句 {% ifequal 值1 值2 %} 語句 {% endequal %} # 如果值1不等于值2,則執(zhí)行語句 {% ifnotequal 值1 值2 %} 語句 {% endequal %}
include
作用: 加載模板
格式: {% include "模板目錄" %}
示例: {% include "t1.html" %}
url
作用:用于反向解析
格式: {% url "namespace:name" 參數(shù)1 參數(shù)2 …… %}
csrf_token
作用:用于跨站請求偽造保護(hù)
格式:{% csrf_token %}
block、extends
作用:用于繼承
autoescape
作用:用于HTML轉(zhuǎn)義
過濾器作用: 在變量被顯示之前修改它的顯示
語法: {{ 變量|過濾器 }}
簡單過濾器: lower upper
{{ des }}
{{ des|lower }}
{{ des }}
過濾器可傳參,參數(shù)用引號引起來
join: {{ arr|join:"#" }}
如果一個變量沒有提供或者值為False或者值為空,則可以使用默認(rèn)值,否則使用變量的值
default: {{ name|default:"sunck" }}
根據(jù)給定格式對一個date變量格式化顯示
date : {{ value|date:"Y-m-d" }}
加減乘除
{{ age|add:2 }}
{{ age|add:-2 }}
{# widthratio 參數(shù)1 參數(shù)2 參數(shù)3 #} {# 參數(shù)1/參數(shù)2*參數(shù)3 #}{% widthratio age 1 2 %}
{% widthratio age 2 1 %}
轉(zhuǎn)義: escape;safe
自定義過濾器
過濾器就是python的函數(shù),可以注冊函數(shù)后在模板中當(dāng)過濾器調(diào)用
# 在應(yīng)用目錄下創(chuàng)建名為templatetags的包 # 在templatetags目錄下創(chuàng)建名為filters.py的文件 # -*- coding:utf-8 -*- #導(dǎo)入Library庫 from django.template import Library #創(chuàng)建一個Library對象 register = Library() #定義函數(shù) #使用裝飾器注冊成過濾器 @register.filter def even(value): return value % 2 == 0 @register.filter def sub(value, othre): return value - othre
# 使用自定義過濾器 {% load filters %} {{ 19|sub:9 }} {% if 19|even %}反向解析********************1
{% else %}********************2
{% endif %}
主路由:url(r"^", include("myApp.urls", namespace="myApp")),
子路由:url(r"^market2/$", views.market, name="market")
模板 : 點(diǎn)我跳轉(zhuǎn)
模板繼承作用: 模板繼承可以減少頁面內(nèi)容的沖定義,實(shí)現(xiàn)頁面內(nèi)容的重用
block標(biāo)簽: 在父模板中預(yù)留區(qū)域,在子模板中填充
extends標(biāo)簽: 實(shí)現(xiàn)繼承,寫在模板文件的第一行
{% block title %}{% endblock title %} {% block link %}{% endblock link %} {% block script %}{% endblock script %}頭 {% block main %} {% endblock main %}
{% extends "base.html" %} {% block title %}child1{% endblock title %} {% block main %}HTML轉(zhuǎn)義child1
{% endblock main %}
Django默認(rèn)開啟了HTML轉(zhuǎn)義
def login(request): if request.method == "GET": # infoStr = "sunck is a good man
" infoStr = "" return render(request, "login.html", {"infoStr":infoStr})
CSRF登陸 {% autoescape off %} {{ infoStr }} {{ infoStr|safe }} {{ infoStr|escape }} {% endautoescape %}
跨站請求偽造保護(hù): 某些惡意網(wǎng)站上包含鏈接、表單按鈕或者JavaScript,它們會利用登陸過的用戶信息試圖在我們的網(wǎng)站上完成某些操作,這就是跨站攻擊
防止CSRF
# 在settings.py中啟用""django.middleware.csrf.CsrfViewMiddleware","中間件,工程中默認(rèn)開啟 # 開啟保護(hù)后不論是自己還是別人都會被屏蔽登陸
{% csrf_token %}: 給表單頁面生成一個隱藏域;寫入一個名為csrftoken的cookie;給隱藏域的value設(shè)置為名為csrftoken的cookie的值;
靜態(tài)文件包含工程中的css、js、img、json等文件
在工程目下創(chuàng)建名為static的目錄用以存儲靜態(tài)文件
配置靜態(tài)文件路徑
# settings.py STATIC_URL = "/static/" STATICFILES_DIRS=[ os.path.join(BASE_DIR, "static"), ]
{#{% load static from staticfiles %}#} {% load static %}主頁 {# #}sunck is a good man
5-django——驗(yàn)證碼,中間件
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/41966.html
摘要:是個很不錯的開發(fā)工具,大大縮短了項(xiàng)目的創(chuàng)建時間以及調(diào)試時間在使用寫腳本一段時間后,想嘗試使用來編寫一個項(xiàng)目,現(xiàn)做以下記錄備忘創(chuàng)建項(xiàng)目如果本地沒有安裝與所選版本對應(yīng)版本,會自動下載相應(yīng)的版本創(chuàng)建后運(yùn)行項(xiàng)目,默認(rèn)頁面為,打開后出現(xiàn)上面的頁面,則 pycharm是個很不錯的python開發(fā)工具,大大縮短了python項(xiàng)目的創(chuàng)建時間以及調(diào)試時間在使用python寫腳本一段時間后,想嘗試使用Dj...
摘要:轉(zhuǎn)載說明來源添加全文搜索功能入門一使用的工具是的開源搜索框架,該框架支持搜索引擎,不用更改代碼,直接切換引擎,減少代碼量。修改如下添加修改為如下第二步在中修改引擎,如下第三步重建索引,在進(jìn)行搜索中文試試吧。 感覺網(wǎng)絡(luò)上關(guān)于Django全文搜索的中文文章太少,并且講的也不是很到位,就是簡單介紹了怎么配置,并沒有說這樣配置有什么用,所以依然很迷茫。所以希望我這篇文章能夠幫助到后來人。 轉(zhuǎn)...
摘要:刪除的全部代碼,并添加如下代碼第行使用了的一個自定義模板標(biāo)簽,它讓包含所有的樣式文件。只修改了樣式,并沒有修改代碼。 《Python編程:從入門到實(shí)踐》筆記。本篇將對Django項(xiàng)目做最后的完善。本篇也是這本書的最后一篇。 1. 前言 在本篇中,我們將: 使用Bootstrap庫設(shè)置樣式; 把項(xiàng)目部署到Heroku上。 2. 設(shè)置項(xiàng)目學(xué)習(xí)筆記的樣式 之前關(guān)注的都是項(xiàng)目的功能,現(xiàn)在來...
摘要:概述作用視圖接收請求并返回響應(yīng)本質(zhì)視圖就是一個函數(shù),被定義在文件中響應(yīng)可以是一個頁面,一個重定向,一個錯誤一個數(shù)據(jù)等等過程視圖函數(shù)對象概述服務(wù)器接收到協(xié)議的請求后,會根據(jù)報文創(chuàng)建對象視圖函數(shù)的一個形參就是對象屬性方法如果請求是通過類發(fā)起的, 概述 作用:視圖接收WEB請求并返回WEB響應(yīng)本質(zhì): 視圖就是一個python函數(shù),被定義在views.py文件中 響應(yīng): 可以是一個HTML頁面...
摘要:聲明本博客的注冊登錄退出功能將使用,參考資源如下文檔教程安裝配置信息安裝后設(shè)置,將相關(guān)加入到里去。指定與特定配置文件相關(guān)聯(lián)的對象之?dāng)?shù)據(jù)庫的。因此并沒有提供用戶詳情應(yīng)用用戶詳情請參考個人博客五用戶個人資料擴(kuò)展 聲明:本博客的注冊登錄退出功能將使用django-allauth,參考資源如下:django-allauth文檔django-allauth教程 1、安裝django-allau...
閱讀 2964·2021-11-24 09:39
閱讀 4582·2021-10-27 14:19
閱讀 2155·2021-08-12 13:25
閱讀 2405·2019-08-29 17:07
閱讀 1191·2019-08-29 13:44
閱讀 1184·2019-08-26 12:17
閱讀 537·2019-08-23 17:16
閱讀 2130·2019-08-23 16:46