zoukankan      html  css  js  c++  java
  • 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(与项目进行交互的命令行工具集入口(项目管理器))

  • 相关阅读:
    微信小程序左右滚动公告栏效果
    返回当前页面title、url等操作
    打开URL操作
    打开浏览器操作
    Java for selenium(webdriver) 环境搭建
    HTMLTestRunner 自动化测试报告
    Python特殊语法:filter、map、reduce、lambda [转]
    抽象类
    __str__
    WebTable 扩展
  • 原文地址:https://www.cnblogs.com/wanghao123/p/7991254.html
Copyright © 2011-2022 走看看