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