IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> 10.2、Django入门--前台管理 -> 正文阅读

[Python知识库]10.2、Django入门--前台管理

1、URLconf 路由管理

  • 在 Django 中,定义 URLconf 包括正则表达式、视图两部分 。
  • Django 使用正则表达式匹配请求的URL,一旦匹配成功,则调用应用的视图 。
  • 注意:只匹配路径部分,即除去域名、参数后的字符串 。
  • 在主配置文件中添加子配置文件,使主 urlconf 配置连接到子模块的 urlconf 配置文件 。

展示首页

编辑主配置文件djangoProject/urls.py
在这里插入图片描述编写子配置文件bookapp/urls.py
实现当book路径后面什么也不加的时候,执行指定的视图函数 views.index

在这里插入图片描述bookapp/views.py文件中的index函数:
租用 book/index.html 并返回给用户

先从数据库中查询所有的book信息,查到之后租用html代码,这个html代码根据从数据库中查询的数据不同,显示的数据也不同。之后还传了上下文books。就是将变量books填充到 html 代码的过程。这个过程就是渲染。

渲染就是将上下文{ 'books':books }填充到book/index.html代码的过程。
在这里插入图片描述
在templates下创建HTML文件:
在这里插入图片描述此时浏览器内直接访问
在这里插入图片描述HTML文件中 < ul >是一个无序列表
< li > 就是小圆点
编写 templates/book/index.html:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <h1 style="color: blue">图书管理系统</h1>
    <ul>
        <li>1</li>
        <li>2</li>
    </ul>
</body>
</html>

在这里插入图片描述
如何将render传递的books显示出来呢?
模板引擎中变量是使用两个花括号引起来的

编写 templates/book/index.html:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <h1 style="color: blue">图书管理系统</h1>
    <ul>
        {%  for book in books %}
            <li>{{ book.name }}</li>
        {% endfor %}
    </ul>
</body>
</html>

刷新页面,能显示图书信息
在这里插入图片描述

2、视图函数处理业务逻辑

展示书籍的详细页

编写项目的主配置文件:
djangoProject/urls.py
在这里插入图片描述编写子配置文件 bookapp/urls.py :
当访问book开头,后面有一个数字的时候,访问views.detail视图函数

在这里插入图片描述
编写 views.detail 视图函数:
bookapp/views.py

在这里插入图片描述
创建templates/book/detail.html文件

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <h1>{{ book.name }}</h1>
    <h1>{{ book.pub_date }}</h1>
    <h1>{{ heros }}</h1>
</body>
</html>

在这里插入图片描述

但是一般不会手动在浏览器内输入数字,一般是在界面点击。这该如何实现呢?

3、模板管理实现好看的HTML页面

作为Web 框架, Django 需要一种很便利的方法以动态地生成HTML。最常见的做法是使用模板。
模板包含所需HTML 输出的静态部分,以及一些特殊的语法,描述如何将动态内容插入。

3.1 模板引擎配置

配置文件 djangoProject/settings.py 中设定了从哪找模板文件
在这里插入图片描述

3.2 模板语法:变量

模板就是将变量信息动态插入到HTML文件中

  • 变量输出语法: { { var } }
    当模版引擎遇到一个变量,将计算这个变量,然后将结果输出。
  • 变量名必须由字母、数字、下划线(不能以下划线开头)和点组成
  • 当模版引擎遇到点(“.”),会按照下列顺序查询:
    字典查询,例如: foo[“bar”]
    属性或方法查询,例如: foo.bar
    数字索引查询,例如: foo[bar]
  • 如果变量不存在, 模版系统将插入’ ’ (空字符串)。

3.3 模板语法: 常用标签

语法 : { % tag % }
用于在输出中创建文本; 控制循环或逻辑; 加载外部信息到模板中。

for标签:
{% for ... in ... %}
   循环逻辑
{% endfor %}

if标签:
{% if ... %}
   逻辑1
{% elif ... %}
   逻辑2
{% else %}
   逻辑3
{% endif %}

comment标签:
{% comment %}
   多行注释
{% endcomment %}

include标签: 加载模板并以标签内的参数渲染
{% include "base/left.html" %}

url反向解析:
{% url 'name' p1 p2 %}

csrf_token标签:用于跨站请求伪造保护
{% csrf_token %}

3.4 主页与详情页前端HTML设计

常用的HTML编写基础

标题标签

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <h1>一级标题</h1>
    <h2>二级标题</h2>
    <h3>三级标题</h3>
    <h4>四级标题</h4>
    <h5>五级标题</h5>
</body>
</html>

在这里插入图片描述

列表标签

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
/* 无序列表*/
    <ul>
        <li>book1</li>
        <li>book2</li>
        <li>book3</li>
    </ul>
/* 有序列表*/
    <ol>
        <li>hero1</li>
        <li>hero2</li>
        <li>hero3</li>
    </ol>
</body>
</html>

在这里插入图片描述

图片标签

在这里插入图片描述
在这里插入图片描述

链接标签

实现:点击文字、或者图片都能链接到网址 https://www.baidu.com

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <a href="https://www.baidu.com">百度一下</a>
    <a href="https://www.baidu.com"><img src="cat.jpg"></a>
</body>
</html>

在这里插入图片描述

表格标签

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <table border="2">
        <tr>
            <td>主机名</td>
            <td>IP</td>
        </tr>
        <tr>
            <td>localhost</td>
            <td>127.0.0.1</td>
        </tr>
        <tr>
            <td>hosta</td>
            <td>192.168.0.11</td>
        </tr>
    </table>
</body>
</html>

在这里插入图片描述

表单标签

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <form>
        用户名: <input type="text" placeholder="username"><br/>
        密码: <input type="password" placeholder="password"><br/>
        <input type="submit" value="登录">
    </form>
</body>
</html>

在这里插入图片描述

点击书籍跳转至详情页

编写模板文件templates/book/index.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <h1 style="color: blue">图书管理系统</h1>
    <ul>
        {%  for book in books %}
            <li><a href="/book/{{ book.id }}">{{ book.name }}</a></li>
        {% endfor %}
    </ul>
</body>
</html>

在这里插入图片描述点击“倚天屠龙记” ,如下:

在这里插入图片描述

Django请求的生命周期(重要)

1、wsgi : 封装请求后交给后端的web框架(如 Flask、Django框架 )。
2、请求中间件: 对请求进行校验或在请求对象中添加其他相关数据,例如: csrf、
request.session 。
3、路由匹配: 根据浏览器发送的不同 url 路径去匹配不同的视图函数。
4、视图函数: 在视图函数中进行业务逻辑的处理。如果涉及数据库,就需要使用 ORM对数据库增删改查、查到数据之后,如果需要返回好看的HTML页面,就需要使用Templates 。
5、响应中间件: 对响应的数据进行处理。
6、wsgi : 将响应的内容发送给浏览器。

在这里插入图片描述
整个核心过程就如上图所示(蓝色和绿色框)。
但是在实际开发中是有一些特殊需求的,这些需求可以通过中间件(上图中的橙色框)来完成。比如:客户端在请求之前想做一些操作就添加一个请求中间件,在视图执行之前做一些操作就有视图中间件。发生异常的时候,做一些操作就设置异常中间件。。。。。

上述项目中的一些中间件,分别作用于不同的阶段。

在这里插入图片描述

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2022-12-25 11:04:55  更:2022-12-25 11:07:08 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/16 17:46:32-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码