此章将搭建,检测和布署一个含有首页和有关网页页面的Pages应用软件。大家将学习培训Django的根据类的主视图和模版,他们是这书后边搭建的更繁杂的Web应用软件的基本。
建立应用软件。
$ mkdir pages && cd pages$ django-admin startproject config .$ python manage.py startapp pages$ vi config/settings.py# config/settings.pyINSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'pages', # new]
模版
每一个互联网架构都必须一种便捷的办法来产生HTML文档。在Django中应用模版:能够联接在一起的单独HTML文档,包含基本上逻辑性。
最先要考虑到的是在Django新项目的构造中把模版放到哪儿。有这两种挑选。默认设置状况下,Django的模版加载器会在每一个应用软件中搜索有关的模版。殊不知,这类构造有一些错乱:每一个应用软件都必须一个新的模版文件目录。
└── pages ├── templates ├── pages ├── home.html
这代表大家必须建设一个新的模版文件目录,一个新的应用软件文件目录,网页页面,最终是咱们的模版自身,即home.html。
另一种方式是建立一个新项目级模版文件目录,并将全部模版放进在其中。根据对config/settings.py文件做一个小的调节,我们可以告知Django也在这个文件目录中找寻模版。这就是我们即将应用的方式。
$ mkdir templates$ vi templates/home.html
首页
$ vi templates/about.html
有关网页页面
$ vi config/settings.py# config/settings.pyTEMPLATES = [ { ... 'DIRS': [str(BASE_DIR.joinpath('templates'))], # new ... },]
根据类的主视图
大家将应用内嵌的TemplateView来表明大家的模版。升级网页页面/主视图. py文件。
# pages/views.pyfrom django.views.generic import TemplateViewclass HomePageView(TemplateView): template_name = 'home.html'class AboutPageView(TemplateView): # new template_name = 'about.html'
資源精准定位符
config/URL . py
# config/urls.pyfrom django.contrib import adminfrom django.urls import path, include # newurlpatterns = [ path('admin/', admin.site.urls), path('', include('pages.urls')), # new]
网页页面/URL . py
# pages/urls.pyfrom django.urls import pathfrom .views import HomePageView, AboutPageView # newurlpatterns = [ path('about/', AboutPageView.as_view(), name='about'), # new path('', HomePageView.as_view(), name='home'), ]
应用根据类的主视图时,一直在主视图名字后加上as_view()。
拓展模版$ touch templates/base.html$ vi templates/base.html Home | About{% block content %}{% endblock content %}$vi templates/home.html{% extends 'base.html' %}{% block content %}
首页
{% endblock content %}$vi templates/about.html {% extends 'base.html' %}{% block content %}
有关网页页面
{% endblock content %}
实验
# pages/tests . pyfrom django . test import SimpleTestCase class SimpleTests(SimpleTestCase):def test _ home _ page _ status _ code(self):response = self . client . get('/')self . asserteqal(response . status _ code,200)def test _ about _ page _ status _ code(self):response = self . client . get('/about/')self . assert equal(response . status _ code,200)大家在这儿应用SimpleTestCase是由于不应用数据库查询。如果我们应用数据库查询,大家将应用功能测试。随后大家查验每一个网页的情况编码是不是为200,这也是对取得成功的HTTP要求的规范回应。
实行:
$ python manage.py testSystem check identified no issues (0 silenced)...----------------------------------------------------------------------Ran 2 tests in 0.060sOK
1.本站大部分内容均收集于网络!若内容若侵犯到您的权益,请发送邮件至:duhaomu@163.com,我们将第一时间处理!
2.资源所需价格并非资源售卖价格,是收集、整理、编辑详情以及本站运营的适当补贴,并且本站不提供任何免费技术支持。
3.所有资源仅限于参考和学习,版权归原作者所有,更多请阅读网站声明。