Django (二)

Django 模板

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
    `-- hello.html

  

hello.html 文件代码如下:

<h1>{{ hello }}</h1>

  从模板中我们知道变量使用了双括号。

接下来我们需要向Django说明模板文件的路径,修改HelloWorld/settings.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,增加一个新的对象,用于向模板提交数据:

# -*- coding: utf-8 -*-

#from django.http import HttpResponse
from django.shortcuts import render

def hello(request):
    context          = {}
    context[‘hello‘] = ‘Hello World!‘
    return render(request, ‘hello.html‘, context)

  

  可以看到,我们这里使用render来替代之前使用的HttpResponse。render还使用了一个字典context作为参数。

context 字典中元素的键值 "hello" 对应了模板中的变量 "{{ hello }}"。

Django 模板标签

  if/else 标签

  基本语法格式如下:

{% if condition %}
     ... display
{% endif %}

  v

  根据条件判断是否输出。if/else 支持嵌套。

{% if %} 标签接受 and , or 或者 not 关键字来对多个变量做判断 ,或者对变量取反( not ),例如:

{% if athlete_list and coach_list %}
     athletes 和 coaches 变量都是可用的。
{% endif %}

  

for 标签

{% for %} 允许我们在一个序列上迭代。

  与Python的 for 语句的情形类似,循环语法是 for X in Y ,Y是要迭代的序列而X是在每一个特定的循环中使用的变量名称。

每一次循环中,模板系统会渲染在 {% for %} 和 {% endfor %} 之间的所有内容。

例如,给定一个运动员列表 athlete_list 变量,我们可以使用下面的代码来显示这个列表:

<ul>
{% for athlete in athlete_list %}
    <li>{{ athlete.name }}</li>
{% endfor %}
</ul>

  可以嵌套使用 {% for %} 标签:

{% for athlete in athlete_list %}
    <h1>{{ athlete.name }}</h1>
    <ul>
    {% for sport in athlete.sports_played %}
        <li>{{ sport }}</li>
    {% endfor %}
    </ul>
{% endfor %}

  

模板继承

模板可以用继承的方式来实现复用。

接下来我们先创建之前项目的 templates 目录中添加 base.html 文件,代码如下:

<html>
  <head>
    <title>Hello World!</title>
  </head>

  <body>
    <h1>Hello World!</h1>
    {% block mainbody %}
       <p>original</p>
    {% endblock %}
  </body>
</html>

  

时间: 2024-11-08 23:25:59

Django (二)的相关文章

Python自动化运维之28、Django(二)

一.FORM 1.概述 django表单系统中,所有的表单类都作为django.forms.Form的子类创建,包括ModelForm 关于django的表单系统,主要分两种 基于django.forms.Form: 所有表单类的父类 基于django.forms.ModelForm: 可以和模型类绑定的Form django中的Form一般有两种功能: 输入html 验证用户输入 1.forms.Form from django.conf.urls import url from hello

Python基础(Django二)

本篇内容接上篇Python基础(Django) 六.Form 说明:Django中的From有两种功能,一是将自己显示成HTML,二是校验数据. 个人认为显示成HTML这个功能不太方便,因为显示样式不太好调整,建议只使用Form的校验数据的功能,所以这里对于样式的设置不做介绍,着重介绍校验数据的功能. Form的使用大概分为三个步骤: 首先定义一个类:类中的每一个字段都是Form的一个属性 然后根据类创建对象并定义校验方法:将创建的对象返回给前端的HTML页面引用,可生成相应的HTML代码.(同

牛刀小试之Django二

model 到目前为止,当我们的程序涉及到数据库相关操作时,我们一般都会这么搞: 创建数据库,设计表结构和字段 使用 MySQLdb 来连接数据库,并编写数据访问层代码 业务逻辑层去调用数据访问层执行数据库操作 import MySQLdb def GetList(sql): db = MySQLdb.connect(user='root', db='yudashao', passwd='1234', host='localhost') cursor = db.cursor() cursor.e

django(二)视图和URL配置

创建一份视图: 在上一节,使用django-admin.py startproject制作的mysite文件夹中,创建一个叫做views.py的空文件.这个Python模块健柏寒这一章的视图. views.py文件的内容: from django.http import HttpResponse def hello(request): return HttpResponse("hell world") 我们定义一个叫做hello的视图函数: 每个视图函数至少要有一个参数,通常被叫做re

Python Web框架Django (二)

第二章:入门 由于现代Web开发环境由多个部件组成,安装Django需要几个步骤. 这一章,我们将演示如何安装框架以及一些依赖关系. 因为Django就是纯Python代码,它可以运行在任何Python可以运行的环境,甚至是手机上! 但是这章只提及Django安装的通用脚本. 我们假设你把它安装在桌面/笔记本电脑或服务器. 往后,在第12章,我们将讨论如何部署Django到一个生产站点. Python 安装 Django本身是纯Python编写的,所以安装框架的第一步是确保你已经安装了Pytho

django (二) 第一个django app

第一个django app 我们来做一个投票网站. 他由两部分组成: 一个公共界面让用户去投票 一个管理界面,对投票增删改. 首先,你得创建一个新的项目,只需一行代码,django将自动为你完成这项任务. cd切换到你想存储你项目的路径下如C:\,输入: django-admin.py startproject mysite 这时,你的C:\下将多了一个文件夹mysite,打开后你会看到: mysite/ manage.py mysite/ __init__.py settings.py url

django二次开发对接FastDFS

项目上传和下载图片流程 django admin的ImageField默认会把文件存到settings.py配置的MEDIA_ROOT目录下,所以存储图片的数量受限于django服务器的硬盘大小.为了支持海量的图片存储, 更易于拓展存储空间,使用FastDFS分布式存储系统.如果用户上传的文件重复(文件指纹一样),那么系统只有存储一份数据. 在文件存储服务器使用nginx支持大量用户请求 nginx对接FastDFS的简要配置 server { listen 8888; server_name

一、Python Django的安装

   一.Python Django的安装 一.Django的安装 # wget https://www.djangoproject.com/m/releases/1.3/Django-1.3.7.tar.gz --no-check-certificate # tar -zxvf Django-1.3.7.tar.gz # cd Django-1.3.7 # python setup.py install # python Python 2.6.6 (r266:84292, Nov 22 201

Python基础(Django三——Model)

本篇内容接上篇Python基础(Django二) 七.Model 1.说明: Model是Django为方便程序操作数据库而诞生的,使用的是ORM模式. 对象关系映射(Object Relational Mapping,简称ORM)模式是一种为了解决面向对象与关系数据库存在的互不匹配的现象的技术.简单的说,ORM是通过使用描述对象和数据库之间映射的关系,将程序中的对象自动持久化到关系数据库中. 2.使用: 2-1.创建Model(编辑应用目录下的models.py) from django.db