Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 激情综合欧美,国产精品久久久久久搜索,国产精品视频九九九

          整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

          Django框架第十一講-模板的定義、反向解析

          Django框架第十一講-模板的定義、反向解析

          jango模板介紹

          1. 作為Web框架,Django提供了模板,可以很便利的動態生成HTML
          2. 模版系統致力于表達外觀,而不是程序邏輯
          3. 模板的設計實現了業務邏輯(view)與顯示內容(template)的分離,一個視圖可以使用任意一個模板,一個模板可以供多個視圖使用

          Django模板包含

          1. HTML的靜態部分
          2. 動態插入內容部分
          3. Django模板語言,簡寫DTL,定義在django.template包中
          4. 由startproject命令生成的settings.py定義關于模板的值:
          5. DIRS定義了一個目錄列表,模板引擎按列表順序搜索這些目錄以查找模板源文件
          6. APP_DIRS告訴模板引擎是否應該在每個已安裝的應用中查找模板
          7. 常用方式:在項目的根目錄下創建templates目錄,設置DIRS值

          DIRS=[os.path.join(BASE_DIR,"templates")]

          Django模板處理

          • Django處理模板分為兩個階段
          • Step1 加載:根據給定的標識找到模板然后預處理,通常會將它編譯好放在內存中

          loader.get_template(template_name),返回一個Template對象

          • Step2 渲染:使用Context數據對模板插值并返回生成的字符串

          Template對象的render(RequestContext)方法,使用context渲染模板

          • 加載渲染完整代碼:

          快捷函數

          • 為了減少加載模板、渲染模板的重復代碼,django提供了快捷函數
          • render_to_string("")
          • render(request,'模板',context)

          Django定義模板

          1. 模板語言包括
          2. 變量
          3. 標簽 { % 代碼塊 % }
          4. 過濾器
          5. 注釋{# 代碼或html #}

          變量

          • 語法:

          {{ variable }}

          1. 當模版引擎遇到一個變量,將計算這個變量,然后將結果輸出
          2. 變量名必須由字母、數字、下劃線(不能以下劃線開頭)和點組成
          3. 當模版引擎遇到點("."),會按照下列順序查詢:

          字典查詢,例如:foo["bar"]

          1. 屬性或方法查詢,例如:foo.bar
          2. 數字索引查詢,例如:foo[bar]
          • 如果變量不存在, 模版系統將插入'' (空字符串)
          • 在模板中調用方法時不能傳遞參數

          在模板中調用對象的方法

          • 在models.py中定義類HeroInfo

          • 在views.py中傳遞HeroInfo對象

          • 在模板detail.html中調用

          {{hero.showName}} 標簽

          • 語法:{ % tag % }
          • 作用
          • 在輸出中創建文本
          • 控制循環或邏輯
          • 加載外部信息到模板中供以后的變量使用
          • for標簽

          • if標簽

          • comment標簽

          • include:加載模板并以標簽內的參數渲染

          { %include "foo/bar.html" % }

          • url:反向解析

          { % url 'name' p1 p2 %}

          • csrf_token:這個標簽用于跨站請求偽造保護

          { % csrf_token %}

          • 布爾標簽:and、or,and比or的優先級高
          • block、extends:詳見“模板繼承”
          • autoescape:詳見“HTML轉義”

          過濾器

          • 語法:{ { 變量|過濾器 }},例如{ { name|lower }},表示將變量name的值變為小寫輸出
          • 使用管道符號 (|)來應用過濾器
          • 通過使用過濾器來改變變量的計算結果
          • 可以在if標簽中使用過濾器結合運算符

          if list1|length > 1

          • 過濾器能夠被“串聯”,構成過濾器鏈

          name|lower|upper

          • 過濾器可以傳遞參數,參數使用引號包起來

          list|join:", "

          • default:如果一個變量沒有被提供,或者值為false或空,則使用默認值,否則使用變量的值

          value|default:"什么也沒有"

          • date:根據給定格式對一個date變量格式化

          value|date:'Y-m-d'

          注釋

          • 單行注釋

          {#...#}

          • 注釋可以包含任何模版代碼,有效的或者無效的都可以

          {# { % if foo % }bar{ % else % } #}

          • 使用comment標簽注釋模版中的多行內容

          點擊關注發私信(基礎視頻),即可獲取下載鏈接:


          板介紹

          1. 模板符號

          談到Python的Django框架的基礎知識時,下面是一些你應該知道的要點:


          1. 安裝和創建項目:首先,你需要安裝Django框架。使用pip命令可以輕松地安裝Django。一旦安裝完成,你可以使用django-admin startproject命令來創建一個新的Django項目。
          2. 應用程序:Django的項目由多個應用程序組成,每個應用程序處理一個特定功能模塊。你可以使用python manage.py startapp命令創建新的應用程序。每個應用程序包含模型、視圖和模板等組件。
          3. 模型:Django的模型是與數據庫表對應的Python類。定義模型時,你可以指定表的結構和字段。Django的ORM(對象關系映射)將會自動創建和管理數據庫表。你可以使用簡單的Python代碼來執行數據庫相關的操作,如創建、讀取、更新和刪除數據。
          4. 視圖:Django的視圖是處理Web請求的函數或類。視圖接收請求并返回響應。你可以使用裝飾器來定義不同類型的視圖,如基于函數的視圖或基于類的視圖。視圖還可以包含業務邏輯和數據處理。
          5. URL配置:URL配置將URL映射到相應的視圖函數或類。在項目的urls.py文件中,你可以設置URL規則和路徑參數。每個應用程序都有自己的urls.py文件,可以將其包含在項目的urls.py文件中。
          6. 模板:Django的模板用于生成動態的HTML頁面。你可以在模板中使用變量、過濾器和標簽。模板可以幫助你將數據以動態方式嵌入到HTML頁面中,并實現頁面的復用。
          7. 靜態文件管理:Django可以管理并提供靜態文件,如CSS、JavaScript和圖像等。靜態文件可以通過STATIC_URL設置進行訪問,并在模板中使用靜態文件標簽進行引用。
          8. 表單處理:Django提供了強大的表單處理功能。你可以使用模型表單或自定義表單來處理用戶的輸入數據。Django的表單可以進行驗證和數據清理,以確保數據的有效性。
          9. 用戶認證和授權:Django提供了內置的用戶認證和授權功能。你可以使用Django的用戶模型來管理用戶賬戶、身份驗證和權限控制。
          10. 中間件:Django的中間件是處理請求和響應的插件。中間件可以攔截請求或響應,并執行一些自定義的處理。它們可以用于實現日志記錄、身份驗證、跨站請求偽造(CSRF)保護等功能。

          這些是Django框架的一些基礎知識。通過學習和實踐,你將能夠構建功能強大的Web應用程序。Django有詳細的官方文檔和教程,供你參考和學習。

          當你掌握了Django的基礎知識后,以下是一些進階的主題,可以幫助你深入學習和應用Django框架:

          1. 數據庫關系:學習如何在模型中定義不同類型的數據庫關系,如一對一、一對多和多對多關系。了解如何使用相關字段、反向關系和查詢集來處理復雜的關系數據。
          2. 視圖類和Mixin:除了函數視圖外,學習如何使用視圖類來組織和重用視圖邏輯。掌握常見的視圖類和Mixin,如ListView、DetailView和FormView,以及如何編寫自定義Mixin。
          3. Django Admin:深入了解Django Admin后臺管理界面,學習如何自定義后臺顯示、過濾、搜索、排序和行為等。掌握如何創建自定義的管理命令。
          4. 信號:學習如何使用Django的信號機制來實現模型的觸發事件,如保存、刪除等。了解常見信號的使用情景,并自定義信號處理函數。
          5. 緩存:了解如何使用Django的緩存框架來提升應用程序的性能。學習如何配置緩存后端、使用緩存裝飾器和模板標簽來緩存數據。
          6. 測試:深入學習如何編寫自動化測試,包括模型、視圖、表單和URL的測試。掌握單元測試、功能測試和集成測試的概念和實踐。
          7. 安全性:了解常見的Web應用安全問題,并學習如何在Django應用中應用最佳實踐,如跨站請求偽造(CSRF)保護、跨站腳本攻擊(XSS)防護、安全的URL構建等。
          8. 國際化和本地化:學習如何在Django應用中實現多語言支持和本地化。了解如何使用翻譯機制、區域設置和時區處理等功能。
          9. 第三方包和擴展:探索Django生態系統中豐富的第三方包和擴展,如Django REST framework、Django Celery、Django Crispy Forms等。了解如何集成和使用這些擴展來增強你的應用功能。
          10. 部署和擴展:學習如何將Django應用程序部署到生產環境中,包括配置服務器、使用Web服務器和應用服務器、使用容器化技術等。了解如何水平擴展和負載均衡你的應用。

          這些是Django框架的一些進階主題,將幫助你更深入地使用和理解Django。不斷學習和實踐,將使你成為一個熟練的Django開發者。希望對你有所幫助!

          、


          主站蜘蛛池模板: 国产一区二区精品久久| 国产在线一区二区三区在线| 亚洲日韩一区精品射精| 国产一区麻豆剧传媒果冻精品| 日本伊人精品一区二区三区| 又紧又大又爽精品一区二区| 午夜影院一区二区| 无码一区二区三区视频| 一区二区视频在线免费观看| 精品久久久久久无码中文字幕一区 | 天码av无码一区二区三区四区| 呦系列视频一区二区三区| 精品爆乳一区二区三区无码av| 国产精品无码AV一区二区三区| 国产激情一区二区三区| 久99精品视频在线观看婷亚洲片国产一区一级在线 | 一区二区三区在线|日本| 国模一区二区三区| 国产视频福利一区| 无码视频一区二区三区| 日本一区二区三区在线看| 国产精品一区二区电影| 国产一区二区精品久久91| 亚洲综合一区二区三区四区五区| 国产香蕉一区二区精品视频| 97se色综合一区二区二区| 色窝窝免费一区二区三区| 国产乱码精品一区二区三区香蕉| 无码人妻av一区二区三区蜜臀| 性色av无码免费一区二区三区| 久久精品无码一区二区三区不卡 | 亚洲一区在线免费观看| 中文字幕一区二区三区在线观看| 99久久综合狠狠综合久久一区| 亚洲一区二区三区免费视频| 亚洲av无一区二区三区| 国产免费一区二区三区VR| 色狠狠一区二区三区香蕉蜜桃| 精品久久一区二区三区| 3D动漫精品一区二区三区| 国产一区二区三区不卡在线看|