PHP前端开发

如何使用Python Django的通用视图和错误视图?

百变鹏仔 11小时前 #Python
文章标签 视图

定义通用视图

修改 book/models.py 代码中的 authorinfo 类,如果一致则不必修改

class AuthorInfo(models.Model):    id = models.CharField(max_length=30, verbose_name="身份证号", primary_key=True)    name = models.CharField(max_length=20, verbose_name="姓名")    telephone = models.CharField(max_length=20, verbose_name="联系方式")    age = models.IntegerField(verbose_name="年龄", default=30)    sex = models.CharField(max_length=2, verbose_name="性别", default="男")    def __str__(self):        return self.name

在 book/views.py 文件下新建 AuthorListView 的函数

from book.models import AuthorInfofrom django.views.generic.list import ListViewclass AuthorListView(ListView):    model = AuthorInfo    template_name = "list.html"    context_object_name = "my_author"

在 book/urls.py 的 urlpatterns 列表中新建一个路由

path('author/', views.AuthorListView.as_view())

立即学习“Python免费学习笔记(深入)”;

新建 templates/list.html 文件

nbsp;html&gt;    <meta>    <meta>    <title>Document</title>

访问 http://127.0.0.1:8000/book/authorlist/

如果无法访问页面,请检查 chapter1/urls.py 文件内的 urlpatterns 列表中是否含有 book 的路由

如果为无报错且为空白页面,请注意查看数据库内是否含有数据,下面为添加示例数据的代码

INSERT INTO book_authorinfo (id, name, telephone, age, sex) VALUES('a001', 'Alice', '13812345678', 25, 'F'),('a002', 'Bob', '13987654321', 30, 'M'),('a003', 'Charlie', '13611112222', 40, 'M'),('a004', 'David', '13533334444', 20, 'M'),('a005', 'Eve', '13755556666', 35, 'F');

可在此处执行

如无问题,将会看到作者信息

定义错误视图模板

修改 chapter1/settings.py 文件

DEBUG = FalseALLOWED_HOSTS = ['*']

新增 templates/404.html 文件

nbsp;html&gt;    <meta>    <meta>    <title>此页面未找到</title>    <h3>自定义的404页面</h3>    <p>您访问的页面不存在</p>

此时进入未定义的路由网址时,便会显示上面编写的网页