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知识库 -> Django笔记2 -> 正文阅读

[Python知识库]Django笔记2

视图2 render渲染数据

通过分路由访问成功不同视图后,客户端在视图中操作数据:

客户端访问:
http://127.0.0.1:8000/myapp/index/

1、客户端进入主路由:

主路由配置(myweb项目下urls.py):
from django.conf.urls import include
urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^hello/', hello),
    url(r'^myapp/', include('myapp.urls'))  # 主路由进入myapp分路由
]

在主路由中通过include(‘myapp.urls’)的方式包含分路由,使客户端访问进入分路由;
此时还需要配置myweb项目文件下的setting.py文件,在TEMPLATES中,修改内容:
‘DIRS’: [os.path.join(BASE_DIR,‘templates’)],
然后,在myweb项目文件中新建文件
templates
,再在templates文件中新建文件myapp
最好在myapp文件中创建index.html文件,来与客户端访问路径http://127.0.0.1:8000/myapp/index/对应。

2、分路由

分路由配置:

先在myapp文件中创建的urls.py
urls.py内容如下:

from django.conf.urls import url
from .views import *  # 引入视图

# myapp路由
urlpatterns = [
    url(r'^index/', index),
]

from .views import * # 引入视图
并在分路由中返回对应视图

3、视图渲染值

视图配置(myapp文件下的views.py)

views.py内容如下:

from django.shortcuts import render
from .models import *


# Create your views here.
def index(request):
    book = Books.objects.all()  # Queryset -- 伪数组 - 列表使用 -获取Books数据表中所有数据
    # 将获取的数据render渲染到index.html,并return返回渲染后的index.html.
    return render(request, 'myapp/index.html', {'book': book})  # 向render传递三个值(request,文件url,渲染值)

渲染的index.html文件有特定的接收数据格式:
{{ 输出值,可以是变量,也可以是对象.属性 }}
{% 执行代码段 %}

index.html内容如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Index</title>
</head>
<body>
<table width="300px">
    <tr>
        <td>ID</td><td>编号</td><td>书名</td><td>价格</td><td>生产日期</td><td>操作</td>
    </tr>
    {% for val in book%}
        <tr>
            <td>{{val.id}}</td>
            <td>{{val.bid}}</td>
            <td>{{val.bname}}</td>
            <td>{{val.bprice}}</td>
            <td>{{val.cpub_time}}</td>
            <td>删除</td>
        </tr>
    {% endfor%}
</table>
</body>
</html>

浏览器访问index.html结果:

客户端操作渲染的数据

通过a标签访问不同操作来实现

在开始实现前先修改一下index视图渲染数据的查询方式
修改myapp文件中的views.py:
将原来的:

def index(request):
    book = Books.objects.all()  # Queryset -- 伪数组 - 列表使用 -获取Books数据表中所有数据
    # 将获取的数据render渲染到index.html,并return返回渲染后的index.html.
    return render(request, 'myapp/index.html', {'book': book})  # 向render传递三个值(request,文件url,渲染值)

修改为:

def index(request):
    book = Books.objects.filter(is_delete=0)
    return render(request, 'myapp/index.html', {'book': book})  # render传递三个值(request,文件url,渲染值)

将原来的无条件查询所有,改为过滤器条件查询。
注:修改引用models.py中的类,将class Books(models.Model):中继承models.Model,修改为继承自定义类,以自动添加过滤器中用于过滤的is_delete属性。# TODO 5555555555 I said it’s too late

配置index.html文件

修改index.html文件中的

<td>删除</td>

为:

<td><a href="/myapp/delete/{{val.id}}">删除</a></td>

此时点击删除将访问/myapp/delete,并返回要删除的数据对应的id值;
由于主路由的配置,我们只需在myapp中定义对应的delete操作:

配置myapp分路由(myapp下的urls.py)

修改urls.py内容如下:

from django.conf.urls import url
from .views import *  # 引入视图

# myapp路由
urlpatterns = [
    url(r'^index/', index),
    url(r'^delete/(\d+)', delete),
]

url配置完成后继续配置其对应的操作(delete):
在myapp文件的views.py中添加内容:

def delete(request, bid):
	# 接收客户端request及删除数据的id
    book = Books.objects.get(id=bid)  # 查询该id
    book.is_delete = 1  # 修改过滤属性(0为显示,1为不显示--软删除)
    book.save()  # 保存修改
    return HttpResponseRedirect('/myapp/index')  # a标签访问完/myapp/delete/id后不用真的跳转到该页,继续返回/myapp/index

此即完成!

再次访问:http://127.0.0.1:8000/myapp/index/
在这里插入图片描述
点击删除按钮,删除《哈姆雷特》成功:
在这里插入图片描述

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2021-12-15 18:15:03  更:2021-12-15 18:15:42 
 
开发: 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 5:58:40-

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