这篇文章主要介绍了怎么使用Python Django的通用视图和错误视图的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇怎么使用Python Django的通用视图和错误视图文章都会有所收获,下面我们一起来看看吧。
定义通用视图
修改
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 AuthorInfo from django.views.generic.list import ListView class AuthorListView(ListView): model = AuthorInfo template_name = "list.html" context_object_name = "my_author"
在
book/urls.py的
urlpatterns列表中新建一个路由
path('author/', views.AuthorListView.as_view())
新建
templates/list.html文件
<!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>Document</title> </head> <body> <ul> {% for item in my_author %} <li>{{ item.name }}</li> {% endfor %} </ul> </body> </html>
访问 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 = False ALLOWED_HOSTS = ['*']
新增
templates/404.html文件
<!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>此页面未找到</title> </head> <body> <h4>自定义的404页面</h4> <p>您访问的页面不存在</p> </body> </html>
此时进入未定义的路由网址时,便会显示上面编写的网页