Django之路第三篇:第一個Templates


概述

  Templates就是一種HTML文件

  使用了Django模板語言(Django Template Language,DTL)

  可以使用第三方模板(如Jinja2)

步驟

  • 在APP的根目錄下創建名叫Templates的目錄
  • 在該目錄下創建HTML文件
  • 在views.py中返回render()

新建的blog/templates/index.html文件內容為:

 1 {# blog/templates/index.html #}
 2 
 3 <!DOCTYPE html>
 4 <html lang="en">
 5 <head>
 6     <meta charset="UTF-8">
 7     <title>Title</title>
 8 </head>
 9 <body>
10     <h1>Hello Blog!</h1>
11 </body>
12 </html>

修改后的blog/views.py文件內容為:

1 # blog/views.py
2 
3 from django.shortcuts import render
4 
5 def index(request):
6     return render(request,'index.html')

通過以上步驟,就可以實現新建index.html文件在瀏覽器的渲染。

DTL初步使用

1.DTL使用方法

  • render()函數中支持一個dic類型參數
  • 該字典是后台傳遞到模板的參數,鍵為參數名
  • 在模板中使用{{參數名}}來直接使用

2.DTL使用步驟

  (1)給blog/views.py文件中的render()函數添加dict參數

1 from django.shortcuts import render
2 
3 def index(request):
4     return render(request,'index.html',{"hello":"Hello Blog!"})

  (2)在blog/templates/index.html文件中使用{{}}

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>Title</title>
 6 </head>
 7 <body>
 8     <h1>hello Blog!</h1>
 9     <h1>{{ hello }}</h1>
10 </body>
11 </html>

經過以上步驟,刷新瀏覽器既可以看到如下圖:

解決Template沖突方案

  Django會按照INSTALLED_APPS中的添加順序查找Templates

  這樣就會照成不同APP下的Templates目錄中的同名html文件會造成沖突

解決方案:

  在APP的Templates目錄下創建以APP名為名稱的目錄

  然后將html文件放入新創建的目錄下

 

當前的工程目錄結構

myblog

  |-----blog(應用目錄)

    |-----migrations(數據移植模塊,內容自動生成)

      |------__init__.py

    |-----templates

      |-----blog

        |-----index.html

    |-----__init__.py

    |-----admin.py(應用的后台管理系統配置)

    |-----apps.py(應用的一些配置)

    |-----models.py(數據模塊,類似於MVC結構中的Models(模型))

    |-----tests.py(自動化測試模塊)

    |-----views.py(執行響應的代碼所在模塊)

    |-----urls.py(新增路由文件)

  |-----myblog(項目目錄)

    |-----__init__.py

    |-----settings.py(項目中的總配置文件)

    |-----urls.py(URL配置文件)

    |-----wsgi.py(Python應用與Web服務器之間的接口)

  |-----db.sqlite3(數據庫文件)

  |-----manage.py(與項目進行交互的命令行工具集入口(項目管理器))


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM