Django的基本使用【后台管理、视图、模板】(第三天)

本文介绍Django框架的后台管理配置流程,包括语言与时区设置、管理员创建、模型类注册及自定义显示。同时,讲解视图函数定义、URL配置方法,以及模板的创建和使用技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、后台管理
1)本地化:到项目下面的settings.py配置后台管理的语言和时区
LANGUGE_CODE = ‘zh-hans’ #表示使用中文
TIME_ZONE = ‘Asia/Shanghai’ #表示中国时间
在这里插入图片描述
2)创建管理员
命令:python manage.py createsuperuser
根据提示输入后面前台管理界面需要用到的账号名跟密码。
3)注册模型类
在应用下的admin.py中注册模型类
在这里插入图片描述
4)访问后台管理界面
注册模型类后,通过命令python manage.py runserver启动服务,访问http://127.0.0.1:8000/admin,输入账号密码进入管理列表界面。
在这里插入图片描述
BookInfo object(3)这个表示的是模型类中函数的对象,如果想要修改,可以进入模型类models.py添加__str__方法,返回想要显示的字段。
在这里插入图片描述
想要在后台管理中显示自定义类的内容,可以通过编辑admin.py,创建个对应的后台管理类,并添加到注册模型类的参数里面,如下图:
在这里插入图片描述
显示效果:
在这里插入图片描述
二、视图函数

视图V是浏览器通过搜索项目路径下面urls.py的配置,链接到应用目录下views.py的函数,用来和M(模型)和T(模板)进行交互处理,最终返回一个应答。
1)定义视图函数
在这里插入图片描述
2)进行url配置
在这里插入图片描述
在这里插入图片描述
配置url时,有两种语法格式:
a)url(正则表达式,视图函数名)
b)url(正则表达式,include(应用中的urls文件))
浏览器输入访问地址,会截取端口后面斜杠后面开始的字符串进行匹配,只要匹配到了,将不会继续运行后面的url进行匹配,所以正则表达式需要严格定义,最好以$结尾。
如果在项目的urls文件中编写的正则表达式是r’^a’,当用户输入如http://127.0.0.1:8000/aindex时,在项目中的urls匹配到了会去除匹配的a字符,剩下的index字符串会继续到应用的urls文件中进行正则匹配。
三、模板
模板不单单只是html页面,里面可以定义变量,是通过views.py视图进行调用。
1)创建模板文件夹
2)项目中使用settings.py配置模板目录
在这里插入图片描述
使用项目绝对路径的变量与创建的文件夹进行拼接。
3)使用模板文件
a)加载模板文件,到模板目录下获取html文件内容,得到一个对象
b)定义模板上下文,向模板文件传递数据
c)模板渲染,得到一个标准的html内容返回给前端
在这里插入图片描述
html如何接收视图传递过来的数据?
在这里插入图片描述
四、完整案例补充
想要达到效果:浏览器访问http://127.0.0.1:8000/books,能够显示图书名称,点击图书名称可以跳转到新的地址,显示出相关联的英雄信息。
解决思路:(1)在视图中创建show_books函数,用来和M(模型)和T(模板)进行交互处理,在视图中引入模型类,查询出图书所有结果保存到变量中,通过函数返回到前端页面;
在这里插入图片描述
(2)在应用下配置urls,用来使浏览器访问地址截取的字符串匹配到视图中的对应函数执行;
在这里插入图片描述
(3)在模板目录下新建show_book.html文件,对图书的数据对象进行接收以及遍历,并设置a标签链接图书id号(因为id具有唯一性),点击图书后会跳转到新的访问路径;
在这里插入图片描述
(4)在视图中创建detail函数并设置一个参数获取urls传递过来的图书id号,通过图书模型类查询出所有关联的英雄保存到变量中,在模板目录下新建detail.html文件,将变量返回到新建的html页面中;
在这里插入图片描述
(5)配置应用下的urls文件,通过正则匹配,分组之后会默认作为参数值传到视图中的detail函数里面。
在这里插入图片描述
(6)编辑detail.html文件,图书所有关联英雄信息显示出来,如果未能找到关联的英雄,则提示没有英雄信息,代码如下:
在这里插入图片描述
效果如下所示:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值