Django day03

django-day3

ORM. 对象关系映射

类 -》 表

对象 ——》 记录

对象的属性 ——》 记录的数据字段

datetime

datetime.date

年月日构成的日期对象

yearmonth, and day.

  1. 创建日期对象

    today = datetime.date.today()
    d = datetime.date(1992,8,15)
    
  2. strftime

    today.strftime('%Y-%m-%d %H:%M:%S')
    

datetime.time

时分秒构成具体时间

hourminutesecondmicrosecond, and tzinfo.

  1. 创建时间对象

    t = datetime.time(9, 50, 20)
    
  2. strftime

    t.strftime('%Y-%m-%d %H:%M:%S')
    

datetime.datetime

日期和时间

yearmonthdayhourminutesecondmicrosecond, and tzinfo.

  1. 创建日期时间对象

    dt = datetime.datetime.today()
    d2 = datetime.datetime(2018, 10, 1, 8, 12, 34, 2000)
    
  2. strftime

    dt.strftime('%Y-%m-%d %H:%M:%S')
    

关联查询

对象方式
一对多

一对应的模型类对象.多对应的模型类名小写_set ()

例:

b = BookInfo.objects.get(id=1)

b.heroinfo_set.all()
多对一

多对应的模型类对象.多对应的模型类中的关系类属性名 例:

#获取多对一的关联对象
h = HeroInfo.objects.get(id=1)
h.hbook
#获取多对一的关联id
h = HeroInfo.objects.get(id=1)
h.hbook_id
查询条件方式
一对多

多模型类.objects.filter(外键属性名称__字段=value)

多对一

一模型类.objects.filter(多模型类名小写__字段=value)

自定关联查询名称

定义关联属性的时候可以在约束条件定义

related_name = '关联名称'

模板

1.配置

在项目管理目录中的settings.py中设置TEMPLATES配置项的DIRS值:
TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [os.path.join(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',
            ],
        },
    },
]

2.定义模板

  1. 在项目根目录中创建templates目录用来保存所有模板

  2. 在templates目录中为应用创建各自的模板目录,比如:

    templates/users # 保存用户应用的模板

    templates/goods # 保存商品应用的模板

    templates/orders # 保存订单应用的模板

3.模板渲染

1. HttpResponse方式
  1. 获取模板对象
  2. template.render(context)渲染模板
from django.http import HttpResponse
from django.template import loader

def index(request):
    # 1.获取模板
    template=loader.get_template('index.html')

    context={'city': '北京'}
    # 2.渲染模板
    return HttpResponse(template.render(context))
2. render简写方式

render(request对象, 模板文件路径, 模板数据字典)

from django.shortcuts import render

def index(request):
    context={'city': '北京'}
    return render(request,'index.html',context)

4.模板语法

1. 模板变量
{{变量}}
2. 模板语句
  1. for 循环
  2. if 条件
3. 过滤器

语法

变量|过滤器:参数
4. 注释

1)单行注释语法如下:

{#...#}

2)多行注释使用comment标签,语法如下:

{% comment %}
...
{% endcomment %}
5. 模板继承
  1. 父模板

    {% block 名称 %}
    预留区域,可以编写默认内容,也可以没有默认内容
    {% endblock  名称 %}
    
  2. 子模板

    标签extends:继承,写在子模板文件的第一行。

  3. {% block 名称 %}
    预留区域,可以编写默认内容,也可以没有默认内容
    {% endblock  名称 %}
    

表单类

作用

  1. 生成表单页面
  2. 表单提交数据的验证

使用

  1. 在应用中创建forms模块,定义表单类
  2. 调用表单类
    1. 创建表单类对象,渲染返回给客户端
    2. 创建表单类,传入客户端表单提交的数据。验证数据,通过返回验证通过后的数据

接口

接口就是封装了一个特定的功能,但是我们不需要知道内部是怎么实现的

应用接口

接口四要素:

  1. 接口地址
  2. 请求方式
  3. 请求参数是什么
  4. 响应格式(json/xml)

编写接口文档

你可能感兴趣的:(Django,Django)