日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

第三百一十节,Django框架,模板语言

發布時間:2025/3/20 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 第三百一十节,Django框架,模板语言 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

第三百一十節,Django框架,模板語言

?

模板語言就是可以將動態數據在html模板渲染的語言

?

一、接收值渲染

locals()函數,寫在請求響應render()函數里,可以將邏輯處理函數里的變量傳到html用模板語言渲染

{{...}}接收一個變量或者值進行渲染

邏輯處理

from django.shortcuts import render from app1.models import * #導入數據庫操作模塊#邏輯處理模塊 def special(request):a = '叫賣錄音網'return render(request, 'index.html', locals()) # 打開頁面

html

<!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><title>Title</title> </head> <body> <h1>{{ a }}</h1> </body> </html>

?

二、接收值,運行代碼塊

for循環

{% for item in item_list %}

?<a>{{ item }}</a>

  forloop.counter  計數器,記錄循環次數
  forloop.first   ?  判斷是否是循環第一次,返回布爾值? ??
  forloop.last    判斷是否是循環最后一次,返回布爾值?

?{% endfor %}

邏輯處理

from django.shortcuts import render from app1.models import * #導入數據庫操作模塊#邏輯處理模塊 def special(request):a = ['首頁','產品展示','關于我們']return render(request, 'index.html', locals()) # 打開頁面

html

<!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><title>Title</title> </head> <body> <ul>{% for i in a %}<li>{{ i }}</li>{{ forloop.counter }}{{ forloop.first }}{{ forloop.last }}{% endfor %} </ul> </body> </html>

if判斷

{% if ordered_warranty %} ?

{% else %}

{% endif %}

邏輯處理

from django.shortcuts import render from app1.models import * #導入數據庫操作模塊#邏輯處理模塊 def special(request):a = ['首頁','產品展示','關于我們']return render(request, 'index.html', locals()) # 打開頁面

html

<!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><title>Title</title> </head> <body> <ul>{% for i in a %}{% if i == '首頁' %}<li style="color: #ee1215">{{ i }}</li>{% elif i == '產品展示' %}<li style="color: #1b47ee">{{ i }}</li>{% else %}<li>{{ i }}</li>{% endif %}{% endfor %} </ul> </body> </html>

?

三、母板-子板-母板繼承

母板繼承就是訪問的頁面繼承一個母板,將訪問頁面的內容引入到母板里指定的地方,組合成一個新頁面返回給瀏覽器

一般母板里都是寫的一個網頁里不變的地方,也就是通用的地方,被繼承頁(訪問頁)都是每個頁面不同的地方,也就是將頁面不同的地方引入到母板組合成一個新頁面返回瀏覽器

母板里一般都是網頁的、頭部、底部、頭部底部css、頭部底部js

被繼承頁(訪問頁)里一般都是新內容,新內容的css和js

母板:{% block title %} {% endblock %} 設置可調用區塊或,有參設置可調用區塊,無參調用區塊
子板:{% extends "base.html" %} 子板繼承母板
   {% block title %} {% endblock %} 設置可調用區塊或,有參設置可調用區塊,無參調用區塊

邏輯處理?

from django.shortcuts import render from app1.models import * #導入數據庫操作模塊#邏輯處理模塊 def special(request):return render(request, 'index.html', locals()) # 打開頁面

母板

<!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><title>Title</title><link rel="stylesheet" type="text/css" href="/static/css/tou.css">{% block css %}{% endblock %} #調用子板的css樣式 </head> <body><div id="tou">頭部</div>{% block nei_rong %}{% endblock %} #調用子板的內容區塊<div id="wei">尾部</div> </body> </html>

子板(訪問頁)

{% extends "tou.html" %} #繼承母板{% block css %}       #設置母版調用css樣式區塊<link rel="stylesheet" type="text/css" href="/static/css/index.css"> {% endblock %}{% block nei_rong %}    #設置母版調用字板內容區塊<div id="neir">內容</div> {% endblock %}

?

四、幫助方法:
{{ item.event_start|date:"Y-m-d H:i:s"}}    格式化時間
{{ bio|truncatewords:"30" }}         ? ?只顯示指定字數
{{ my_list|first|upper }}           ? ? ?首字母大寫
{{ name|lower }}             ? ? ? ? ??首字母小寫

?

?

五、自定義html模板可調用函數模塊

a、在app應用中創建templatetags目錄

b、在目錄中創建任意 .py 文件,如:xx.py

在py文件里設置html可調用函數,注意py文件里有幾個注意點如下:

#!/usr/bin/env python # coding:utf-8 from django import template              #必須導入這個模塊 from django.utils.safestring import mark_safe #必須導入這個模塊register = template.Library()   #固定格式必須設置這個變量  @register.simple_tag #自定義函數必須用上這個裝飾器,html頁面才可以調用 def my_simple_time(v1, v2, v3): #自定義函數return v1 + v2 + v3@register.simple_tag def my_input(id, arg):result = "<input type='text' id='%s' class='%s' />" % (id, arg,)return mark_safe(result)

c、在使用自定義函數的html文件中導入自定義函數模塊 xx.py 文件名
{% load 自定義函數模塊名稱 %}

d、html頁面使用
{% 函數名稱 參數 參數 參數 %}

{% load mbanyuyan %} #導入自定義函數模塊 <!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><title>Title</title> </head> <body>{% my_simple_time 1 2 3 %} #傳參并且執行自定義函數</body> </html>

?

注意:使用自定義html函數,必須在全局配置文件settings.py里的INSTALLED_APPS注冊了app應用

INSTALLED_APPS = ('django.contrib.admin','django.contrib.auth','django.contrib.contenttypes','django.contrib.sessions','django.contrib.messages','django.contrib.staticfiles','app01', )

?

?

?

?


?

?

轉載于:https://www.cnblogs.com/adc8868/p/7173139.html

總結

以上是生活随笔為你收集整理的第三百一十节,Django框架,模板语言的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。