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 18视频在线观看,在线免费自拍,666精品国产精品亚洲

          整合營銷服務商

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

          免費咨詢熱線:

          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開發者。希望對你有所幫助!


          主站蜘蛛池模板: 国产日韩一区二区三区在线播放| 久久4k岛国高清一区二区| 国产亚洲自拍一区| 国产精品一区在线播放| 国产在线aaa片一区二区99| 国产成人一区二区在线不卡| 免费无码毛片一区二区APP| 日本精品高清一区二区| 亚洲国产精品一区二区三区久久 | 亚洲一区二区三区久久久久| 国产高清在线精品一区小说| 精品一区二区三区3d动漫| 在线|一区二区三区| 成人精品视频一区二区| 无码人妻啪啪一区二区| 无码少妇A片一区二区三区| 波多野结衣AV一区二区三区中文| 亚洲码一区二区三区| 国产成人一区二区三区视频免费| 国产伦理一区二区| 日本欧洲视频一区| 亚洲午夜精品一区二区公牛电影院| 久久99精品波多结衣一区| 少妇无码一区二区二三区| 亚洲一区综合在线播放| 亚洲av乱码一区二区三区香蕉| 78成人精品电影在线播放日韩精品电影一区亚洲 | 精品一区二区三区在线视频观看 | 精品无人区一区二区三区| 88国产精品视频一区二区三区| 国产精品高清一区二区人妖| 99偷拍视频精品一区二区| 一区二区三区四区无限乱码| 国产韩国精品一区二区三区| 久久国产精品最新一区| 精品深夜AV无码一区二区老年| 国产一区二区不卡老阿姨| 天码av无码一区二区三区四区| 国产成人片视频一区二区| 亚洲中文字幕无码一区| 亚洲AV日韩综合一区|