模版文件夹及配置

在项目结构为:

HelloWorld/
|-- HelloWorld
|   |-- __init__.py
|   |-- __init__.pyc
|   |-- settings.py
|   |-- settings.pyc
|   |-- urls.py
|   |-- urls.pyc
|   |-- view.py
|   |-- view.pyc
|   |-- wsgi.py
|   `-- wsgi.pyc
|-- manage.py

中创建templates文件夹和HelloWorld文件夹为同一级,项目结构为:

HelloWorld/
|-- HelloWorld
|   |-- __init__.py
|   |-- __init__.pyc
|   |-- settings.py
|   |-- settings.pyc
|   |-- urls.py
|   |-- urls.pyc
|   |-- view.py
|   |-- view.pyc
|   |-- wsgi.py
|   `-- wsgi.pyc
|-- manage.py
`-- templates
    `-- h.html

其中h.html内主体代码为:

<h1>do you like wanyouxi?</h1>
<h2>{{ hello }}</h2>
<h3>{{ item }}</h3>

注意:用双大括号括起来的是变量,如果在view.py中未加入对该值的修改,将不会显示。

在写完模版后,需要设定模版的路径,在HelloWorld/setting.py中,修改TEMPLATES中的DIRS为[BASE_DIR+“/templates”,]

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [BASE_DIR + '/templates', ],
        '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',
            ],
        },
    },
]

修改view.py中的代码,传入h.html需要的变量。

def hello(request):
    context = dict()
    context['hello'] = 'biubiubiu'
    context['item'] = 'the item is %s' % 2
    return render(request, 'h.html', context)

可以看到,我们这里使用 render 来替代之前使用的 HttpResponse。render 还使用了一个字典 context 作为参数。
context 字典中元素的键值 “hello” 对应了模板中的变量 “{{ hello }}“。

image