【Django】入门实践指南之模板引擎|第3篇

课程:Django入门项目 - 论坛系统
打卡时间:2018.4.25

目录

【Django】入门实践指南之环境搭建|第0篇
【Django】入门实践指南之系统设计|第1篇
【Django】入门实践指南之模型设计|第2篇
【Django】入门实践指南之模板引擎|第3篇
【Django】入门实践指南之测试&静态文件配置|第4篇
【Django】入门实践指南之Admin&URL分发|第5篇
【Django】入门实践指南之模板复用&表单处理|第6篇

前言

上面一篇我们已将创建模型和数据库表,本章我们学习如何创建一个界面,

一、第一个页面

在第一篇文章中,就已经学习创建了视图函数home。输出Hello, world!。 本篇我们将学习如何通过模板引擎创建视图。

1.1 修改路由配置

Django 2.0与之前版本路由配置有差别。

首先在boards创建一个文件urls.py。文件内容如下:

from django.urls import path
from . import views
urlpatterns = [
    path('', views.home, name='home')
]

接着还需要修改myproject/urls.py。修改如下:

from django.contrib import admin
from django.urls import path, include
urlpatterns = [
    path('admin/', admin.site.urls),
    path('boards/', include('boards.urls'))
]

pathincludeDjango 2.0路由配置方式。使用正则表达式时,需要将path替换为re_path

修改好路由配置,可以执行查看一下效果。运行效果和第一篇文章效果相同。

1.2 模板引擎

manage.py所在的目录中创建名为templates的新文件夹,目录结构如下:

myproject/
 |-- myproject/
 |    |-- boards/
 |    |-- myproject/
 |    |-- templates/   <-- 这里
 |    +-- manage.py

templates文件夹中,创建一个名为home.html的文件。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Boards</title>
</head>
<body>
    <h1>Boards</h1>
    {% for board in boards %}
        {{ board.name }} <br>
    {%  endfor %}
</body>
</html>

上面{% for board in boards %}{% endfor %}Django模板语言。意思是for遍历列表对象。home模板文件现在创建好了,此时还不能用。需要配置templates路径。

打开setting.py文件,找到TEMPLATES变量,将内部DIRS设置为:

'DIRS': [os.path.join(BASE_DIR, 'templates')],

该行的作用是找到文件的路径。

可以通过shell命令调试:

>>> from django.conf import settings
>>> settings.BASE_DIR
'/Users/lqq/AnacondaProjects/myproject_1'
>>> import os
>>> os.path.join(settings.BASE_DIR, 'templates')
'/Users/lqq/AnacondaProjects/myproject_1/templates'
>>>

到目前我们已经配置好路径和文件,接下来就开始写内容了。

boards/views.py文件。

from django.shortcuts import render
from .models import Board
def home(request):
    boards = Board.objects.all()
    return render(request, 'home.html', {'boards': boards})

运行服务器,在浏览器输入http://127.0.0.1:8000/boards/。界面显示:

Boards
Django 
Swift 

到这里我们已经学会了,使用模板引擎的所有步骤。关于,界面优化可以使用bootstrap等,设计喜欢的样式。也可以使用一些开源的三方页面。后面我们会学习一些。

二、小结

下一篇会学习如何进行单元测试。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 切换到创建项目的目录 cd C:\Users\admin\Desktop\DjangoProject创建名为pr...
    在努力中阅读 8,560评论 2 3
  • 晚饭后,除去健身日,一家三口的必备节目就是到书房看书。 夜,很静! 爸爸突然记起了什么重要的事情:“今天闺女在幼儿...
    L荫阅读 2,047评论 0 1
  • 昨夜又一次把闹钟抛弃,响了但不觉又睡了过去,现在方才醒来,发现天已拂晓。 其实 很想再继续会周公,但是一...
    四叶草软软阅读 936评论 0 0
  • 想哭哭不出來 想大聲吶喊卻無處可尋 心裡的憋屈 心裡的不安 心裡的煩躁 都占据著內心世界 開心、快樂、興奮 都無處...
    無味白開水阅读 1,131评论 0 0
  • 世事翻云覆雨,正是因为懂得你的难处,方能与你比肩而立,共看沧海变桑田。 人活一辈子,遇见的人太多太多,可最终真正知...
    朱侃侃zkk阅读 988评论 0 0