Django ListView 列表视图类

ListView是Django的通用视图之一,它用于显示一个对象列表。这个视图将所有的对象作为一个上下文变量传递给模板。

1,创建应用

复制代码
 python manage.py startapp app3

2,注册应用

Test/Test/settings.py

Test/Test/urls.py

3,添加模型

Test/app3/models.py

复制代码
from django.db import models

# Create your models here.

class Book(models.Model):
    title = models.CharField(max_length=200)
    author = models.CharField(max_length=100)
    publication_date = models.DateField()

4,添加视图

Test/app3/views.py

复制代码
from django.shortcuts import render

# Create your views here.
from django.views.generic import ListView
from .models import Book

class BookListView(ListView):
    model = Book
    context_object_name = 'books'
    template_name = 'books/book_list.html'

5,添加HTML代码

Test/templates/books/book_list.html

复制代码
<!-- 在templates/books/book_list.html中 -->
<!DOCTYPE html>
<html>
<head>
    <title>Book List</title>
</head>
<body>
    <h1>Book List</h1>
    <ul>
        {% for book in books %}
            <li>{{ book.title }} by {{ book.author }} ({{ book.publication_date }})</li>
        {% empty %}
            <li>No books available.</li>
        {% endfor %}
    </ul>
</body>
</html>

6,添加路由地址

Test/app3/urls.py

复制代码
from django.urls import path
from . import views

from .views import BookListView

urlpatterns = [
    path('books/', BookListView.as_view(), name='book_list'),
]

7,进行数据库迁移

打开命令行,进入你的Django项目的根目录。

复制代码
python manage.py makemigrations

运行python manage.py makemigrations命令。这个命令会检查你的模型定义,并创建一个迁移文件,这个文件包含了将数据库从当前状态更新到新的模型定义所需的SQL命令。

复制代码
 python manage.py migrate

运行python manage.py migrate命令。这个命令会执行迁移文件中的SQL命令,更新数据库的结构。

8,访问页面

http://127.0.0.1:8000/app3/books/

访问页面展示

  • No books available.

说明数据库表语句创建好了。但是没有表数据

django会自动创建好这些表,

9,插入表数据,再次查看页面

复制代码
select * from app3_book;

INSERT INTO db1.app3_book
(id,title,author,publication_date)
VALUES(0, 'java入门到弃坑', '余胜军', '2024-06-10');

INSERT INTO db1.app3_book
(id,title,author,publication_date)
VALUES(0, 'python入门到弃坑', '啧啧', '2024-06-11');

INSERT INTO db1.app3_book
(id,title,author,publication_date)
VALUES(0, 'js入门到弃坑', '啧啧3', '2023-06-11');

10,再次刷新页面

http://127.0.0.1:8000/app3/books/

Django ListView视图分页-CSDN博客

相关推荐
DeepVisionary3 分钟前
SoundHound 完成收购 LivePerson:股权对价 4300 万美元,实际总成本约 3.04 亿
python·自动化
deepseek2320 分钟前
Google Gemini Agentic Video 上线:88% 少 token 的主动取样如何改写长视频理解
python·多模态·ai agent·gemini·视频理解
Zane199431 分钟前
只重写了 __eq__,为什么类突然变得不可哈希了?常用魔法方法大盘点
后端·python
2601_9628857233 分钟前
如何用 Python 做 A 股全市场扫描选股?(多条件筛选实战)
开发语言·python
零域码客39 分钟前
一文掌握 jQuery + Flask 全栈核心知识点(前端交互 + 后端接口 + 前后端联调)
前端·python·ajax·flask·jquery·前后端联调·web全栈
BYSJMG42 分钟前
计算机毕设选题做什么好?基于大数据的用户美食数据分析与可视化,PySpark预处理+ECharts大屏,含Isolation Forest异常检测算法
大数据·python·信息可视化·数据分析·spark·课程设计·美食
奈斯先生Vector44 分钟前
AIGC 视频生成换个拍法:用 Kling Video 把一张人物图变成可剪辑的短故事
开发语言·人工智能·windows·python·aigc·音视频
卷无止境1 小时前
当"精简主义"住进AI编程助手:Ponytail深度解读
后端·python·fastapi
2601_962298271 小时前
交易开拓者通常使用什么编程语言?这种语言如何帮助自动化交易?
java·c++·python·编程语言·自动化交易
心易行者1 小时前
用html在线运行做数据可视化大屏,5个实战场景从入门到上线
大数据·前端·数据库·人工智能·python