课程:Django入门项目 - 论坛系统
打卡时间:2018.4.26
目录
【Django】入门实践指南之环境搭建|第0篇
【Django】入门实践指南之系统设计|第1篇
【Django】入门实践指南之模型设计|第2篇
【Django】入门实践指南之模板引擎|第3篇
【Django】入门实践指南之测试&静态文件配置|第4篇
【Django】入门实践指南之Admin&URL分发|第5篇
【Django】入门实践指南之模板复用&表单处理|第6篇
前言
上一篇学习了如何使用模板引擎搭建界面。本篇将学习如何对界面进行测试。学习使用Testing tools
。
关于Testing tools
具体内容请查看官方文档。Testing tools
一、第一个测试
上一篇我们创建Home
页面,我们接下来测试用例,来测试该URL返回的状态码。在boards/tests.py
文件填入一下内容。
from django.test import TestCase
from django.urls import reverse, resolve
# reverse在urls模块中
from .views import home
class HomeTests(TestCase):
def test_home_view_status_code(self):
url = reverse('home')
response = self.client.get(url)
self.assertEquals(response.status_code, 200)
reverse()
方法使用命名URL获取url。它对应的是boards/urls.py
文件中path('', views.home, name='home')
的值。另外该方法还可以接受参数args
或者kwargs
,用来接收URL
中的参数。PS: args
和kwargs
不可同时使用。
执行python manage.py test
命令。
会在控制台输出一些信息。
上面这测试时测试请求地址返回状态码是否是200。接下来我们来看第二个测试。
def test_home_url_resolves_home_view(self):
view = resolve('/boards/')
self.assertEquals(view.func, home)
该方法使用resolve
函数。Django
使用它来将浏览器发起请求的URL
和urls.py
模块中列出的URL
进行匹配。该测试用来确定/boards/
返回home视图。
运行test
命令。查看测试结果!
另外,还可以通过设置verbosity
来决定控制台打印的通知和调试信息量;0:无输出;1:正常输出;2:详细输出。
例如:
python manage.py test --verbosity=2
以上就是第一个测试,以后的学习中我们还会继续学习如何测试。这只是简单的入门。
二、静态文件配置
静态文件是指css
, js
, 字体,图片等资源。
Django
不负责处理这些文件,提供了一些功能来帮助我们管理静态文件。这些功能可在 INSTALLED_APPS 的 django.contrib.staticfiles
应用程序中找到(译者:Django为了使得开发方便,也可以处理静态文件,而在生产环境下,静态文件一般直接由 Nginx 等反向代理服务器处理,而应用服务器专心负责处理它擅长的业务逻辑)。
下面以添加bootstrap
到项目中为例,学习如何管理静态文件。
首先在manage.py
同级目录下创建static
文件夹,并在其中创建一个css
文件夹。将下载好的bootstrap.min.css
放入该文件夹中。
接下来我们需要告诉Django
去哪里查找静态文件。在setting.py
文件中添加一下内容。
# Static files (CSS, JavaScript, Images)
# https://docs.djangoproject.com/en/2.0/howto/static-files/
STATIC_URL = '/static/'
STATICFILES_DIRS = [
os.path.join(BASE_DIR, 'static'),
]
此时已经配置好静态文件的路径了。接下来可以使用bootstrap
文件。
templates/home.html
{% load static %}<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Boards</title>
<link rel="stylesheet" href="{% static 'css/bootstrap.min.css' %}">
</head>
<body>
<div class="container">
<ol class="breadcrumb my-4">
<li class="breadcrumb-item active">Boards</li>
</ol>
<table class="table">
<thead class="">
<tr>
<th>Board</th>
<th>Posts</th>
<th>Topics</th>
<th>Last Post</th>
</tr>
</thead>
<tbody>
{% for board in boards %}
<tr>
<td>
{{ board.name }}
<small class="text-muted d-block">{{ board.desc }}</small>
</td>
<td class="align-middle">0</td>
<td class="align-middle">0</td>
<td></td>
</tr>
{% endfor %}
</tbody>
</table>
</div>
</body>
</html>
文件开头使用了Static Files App
模板标签{% load static %}
。
模板标签{% static %}
用于构成资源文件完整URL
。此时{% static 'css/bootstrap.min.css' %}
将返回static/css/boostrap.min.css
。
至此,静态文件应配置好了。
我们可以运行python manage.py runserver
启动服务器,打开浏览器查看页面。
三、小结
本篇学习Testing tools
基本用法,另外还学习如何添加静态文件,以及如何配置静态文件等。
网友评论