验证码: 看不清楚,换一张 查询 注册会员,免验证
  • {{ basic.site_slogan }}
  • 打开微信扫一扫,
    您还可以在这里找到我们哟

    关注我们

Python Django通用视图和错误视图怎么使用

阅读:260 来源:乙速云 作者:代码code

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"

Python Django通用视图和错误视图怎么使用

book/urls.pyurlpatterns 列表中新建一个路由

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

Python Django通用视图和错误视图怎么使用

新建 templates/list.html 文件




    
    
    Document


        {% for item in my_author %}     
  • {{ item.name }}
  •     {% endfor %}

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

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

Python Django通用视图和错误视图怎么使用

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

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');

可在此处执行

Python Django通用视图和错误视图怎么使用

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

Python Django通用视图和错误视图怎么使用

定义错误视图模板

修改 chapter1/settings.py 文件

DEBUG = False

ALLOWED_HOSTS = ['*']

Python Django通用视图和错误视图怎么使用

新增 templates/404.html 文件




    
    
    此页面未找到


    

自定义的404页面

    

您访问的页面不存在

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

Python Django通用视图和错误视图怎么使用

分享到:
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: hlamps#outlook.com (#换成@)。
相关文章
{{ v.title }}
{{ v.description||(cleanHtml(v.content)).substr(0,100)+'···' }}
你可能感兴趣
推荐阅读 更多>