1、概述

在理解了上一篇Django中MTV模式的情况下,本篇使用静态模板(first_web.html)代替html_strimg,模板中使用前端样式框架semantic.css。

2、新建静态文件templates和static

在firstapp文件夹下,新建static和templates文件,其中templates存放静态网页模板,static中存放网页模板的图片、样式

django 网页架构图 django做一个网页_django 网页架构图

3、在setting.py中设置静态网页模板的路径

django 网页架构图 django做一个网页_Django_02

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [os.path.join(BASE_DIR, 'templates').replace('\\', '/')],
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
            ],
        },
    },
]

说明:路径中模板文件的名称与新建的模板文件名称对应。

4、在model.py中创建数据表Article,存放文章的标题和内容

django 网页架构图 django做一个网页_Django_03

说明:Article数据表中有两个字段,headline标题和content内容。其中方法__str__(self)是为了能在后台看到存放的名称,见下面后台操作。

5、创建后台超级管理员账号,输入文章Article数据

Django有 一个很方便的操作就是有自己的后台,可以在后台中可视化的操作所需要的数据。要进入后台,首先创建一个超级管理员账号,方法如下:

1)创建管理员账号

打开终端,输入命令:python manage.py createsuperuser

django 网页架构图 django做一个网页_后台_04

说明:按照提示,先输入管理员账号,然后输入密码(邮件地址可以不写).

2)运行服务

打开终端,输入命令:python manage.py runserver

django 网页架构图 django做一个网页_Django_05

3)使用浏览器输入后台网址,打开后台

打开浏览器,输入网址:http://127.0.0.1:8000/admin,如下

django 网页架构图 django做一个网页_后台_06

说明:输入刚创建好的账号,密码即可登入后台。

4)在admin.py中注册数据库数据

在model.py中建立的数据Article,只有在admin.py中进行注册,才能在后台进行操作。,注册方式如下:

django 网页架构图 django做一个网页_示例_07

5)在后台中添加Aticle中的数据

打开后台中的Article对象,然后添加数据标题headline,内容content:

django 网页架构图 django做一个网页_C++_08

6、在view.py中对数据进行操作

from django.shortcuts import render, HttpResponse
from firstapp.models import People, Article
from django.template import Context, Template

# Create your views here.
def index(request):
    context = {}
    article_list = Article.objects.all()
    context['article_list'] = article_list
    return render(request, 'first_web.html', context)

解析:

a、引入Article的数据,然后使用Article.objects.all()获取所有数据;

b、使用context上下文,进行数据与静态与网页模板关联;

c、使用render()方法,返回网页的视图。其中第一个参数为request请求,第二个参数为静态网页模板,第三个参数为上下文。

7、对静态网页模板first_web.html进行修改

Django的模板语言有模板标签、模板变量和模板过滤。下面使用模板语言,用Article数据库中的数据替换静态模板中的文章的数据。主要内容包括:

1)使用模板标签

<!DOCTYPE html>
<html>
{% load staticfiles %}
    <head>
        <meta charset="utf-8">
        <title>first web</title>
        <link rel="stylesheet" href="{% static 'css/semantic.css' %}"  media="screen" title="no title" charset="utf-8">

解析:

a、在首部使用模板标签{% load staticfiles %}来说明一下内容,将载入静态文件;

b、使用{% static 'css/semantic.css' %}来指明CSS框架文件的存放位置;

c、若html文件中,出现需要引用静态文件的地方,都需要用static来替换。

2)使用模板变量和模板过滤

<div class="ui  vertical segment">
          {% for article in article_list  %}
            <div class="ui container vertical segment">
                <a href="#">
                    <h1 class="ui header">
                        {{ article.headline }}
                    </h1>
                </a>
                <i class="icon grey small unhide">10,000</i>
                <p>
                    {{ article.content|truncatewords:100 }}
                    <a href="#">
                        <i class="angle tiny double grey right icon">READMORE</i>
                    </a>
                </p>
                <div class="ui mini  tag label">
                    life
                </div>
            </div>
          {% endfor %}
</div>

解析:

a、使用模板标签for循环来读取文章数据,并使用模板变量{{ }}格式来显示数据;

b、{{模板变量|模板过滤}}格式为使用模板变量加过滤,如上{{ article.content|truncatewords:100 }},文章内容显示不超过100个字符。

8、修改url.py总网页的访问网址

django 网页架构图 django做一个网页_后台_09

9、网页效果显示

django 网页架构图 django做一个网页_示例_10