Django渲染模板

在页面上显示内容可以简单的用django.http.HttpResponse来显示我们需要的内容,但是当我们需要一些处理一些复杂的数据或者从数据库读出来的操作要显示在html标签内或者js代码中就需要用渲染模板的方法。

开始

创建工程

首先,使用一下代码创建一个名为ymxz的工程(读者可以根据需要设置自己的工程名):

django-admin startproject ymxz
  • 当然你也可以用pycharm创建一个django工程

创建app

创建工程之后,cd到工程目录,创建一个名为myapp的应用

python manage.py startapp myapp
  • 上面操作完成后,我们的项目的目录结构如下:


    Django渲染模板_第1张图片
    渲染模板目录结构1

创建模板

在myapp目录下创建一个名为templates的目录,在这个目录下面创建一个网页,我这里叫index.html

  • 完成后,应如图所示:


    Django渲染模板_第2张图片
    渲染模板目录结构2
  • 在index中写入我们需要显示的内容


    Django渲染模板_第3张图片
    渲染模板index

修改views.py

from django.shortcuts import render

# Create your views here.
def index(request):
    return render(request,'index.html')

修改urls.py

from django.conf.urls import patterns, include, url
from django.contrib import admin

from myapp import views

urlpatterns = patterns('',
                       # Examples:
                       # url(r'^$', 'ymxz.views.home', name='home'),
                       # url(r'^blog/', include('blog.urls')),

                       url(r'^admin/', include(admin.site.urls)),
                       url(r'^index/', views.index),
                       )

修改settings.py

修改INSTALLED_APPS这个字段添加我们的app--myapp

INSTALLED_APPS = (
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'myapp',
)

打开调试服务器

在cmd中执行以下语句

python manage.py runserver
  • 在浏览器地址栏输入http://127.0.0.1:8000/index/
    Django渲染模板_第4张图片
    django渲染模板结果

    如上图显示即为成功。

用模板语言从后台向前端传递数据

打开views.py修改内容为:

from django.shortcuts import render

# Create your views here.
def index(request):
    str = 'hello world django'
    return render(request, 'index.html', {'test': str})

  • str可以是字符串,字典,列表,元组等数据,其他的请读者自行搜索django模板语言

修改index.html内容为:




    
    Title


{{ test }}


  • {{ test }} 是最简单的模板语言的一种,还可以做到循环遍历,判断等略微复杂一点的功能,请自行了解,本文将不做介绍。
  • 在浏览器地址栏输入http://127.0.0.1:8000/index/
    Django渲染模板_第5张图片
    django渲染模板结果

    如上图显示即为成功。

注:

  • 上述代码在django1.7Python2.7中编译成功运行,其他环境请自行测试
  • 上述文字皆为个人看法,如有错误或建议请及时联系我

你可能感兴趣的:(Django渲染模板)