课程: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'))
]
path
、include
是Django 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
等,设计喜欢的样式。也可以使用一些开源的三方页面。后面我们会学习一些。
二、小结
下一篇会学习如何进行单元测试。
网友评论