【Django 002】通过template文件返回html

光返回一堆文字不是我们想要的,最终我们需要返回一个个html页面给用户。上一节我们知道了MTV中的V,也就是view函数,这一节我们就一起来看看MTV模型中的T,也就是template,它专门负责返回给用户的内容。

我是T型人小付,一位坚持终身学习的互联网从业者。喜欢我的博客欢迎在csdn上关注我,如果有问题欢迎在底下的评论区交流,谢谢。

应用级别templates

创建templates文件夹

这里使用的还是上一节的App项目,创建App/templates文件夹,并点击右键把这个文件夹设定为template folder这样设定的好处就是在需要应用templates文件的时候pycharm会自动提示
1-templates.png

创建index.html文件

在刚才的templates文件夹中创建一个html文件index.html,待会会返回给用户。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<ul>
    <li>This</li>
    <li>is</li>
    <li>so</li>
    <li>much</li>
    <li>fun</li>
</ul>
</body>
</html>

如果是pycharm专业版,也支持sublime里面相同的前端快捷键,例如 ul>li*5

创建view函数

views.py中加下面这个函数,render函数用来渲染html,第一个参数同样是request,第二个参数是template文件的名字

def index(request):
    return render(request,'index.html')

其中因为有了第一步添加templates文件夹的操作,这里的第二个参数pycharm会自动提示

创建路由规则

urls.py中加入下面这条路由规则,当用户访问http://127.0.0.1:8000/index.html/的时候用刚才创建的index函数来响应

path('index.html/', views.index)

验证结果

在浏览器访问http://127.0.0.1:8000/index.html/会返回正确页面
2-result.png

如果忘记了,浏览器会自动把url后面的斜线加上

这里只是本地可以访问,如果想在所有网口上监听可以在启动项目的时候采用下面的方式

python manager.py runserver 0.0.0.0:8000

项目级别templates

也可以直接在App的上一级,也就是HelloDjango创建一个templates文件夹。

创建templates文件夹

同样需要将这个文件夹加入到template folder
3-templates.png

但是因为这个templates目录和App/views.py并不在同一层目录,所以不能直接使用,需要先在全局注册一下这个templates文件夹

注册文件夹

在全局配置文件settings.py中修改TEMPLATES的配置,添加刚才创建的文件夹的绝对路径
4-settings.png

路径建议都用BASE_DIR配合相对路径来完成

创建模板文件

在刚才创建的templates目录中添加haha.html文件
5-haha.png

创建路由和view函数

路由和view函数按照之前的方法进行添加

view函数
6-views.png
路由
7-urls.png

验证结果

启动项目后,在浏览器访问http://127.0.0.1:8000/haha.html/成功返回页面
8-result.png

两种template方式选哪种?

因为模板是可以被继承的,所以我们优先采用第二种全局的方式去定义templates文件夹。

总结

templates的引入让我们可以根据用户请求的url返回不同的html文件,但是假如一个项目有几十上百个页面,假如都用同一个路由和view文件,会造成文件结构不清晰难以维护。下一节我们一起来看看如何对一个大项目进行拆分。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值