django-day3
ORM. 对象关系映射
类 -》 表
对象 ——》 记录
对象的属性 ——》 记录的数据字段
datetime
datetime.date
年月日构成的日期对象
-
创建日期对象
today = datetime.date.today() d = datetime.date(1992,8,15)
-
strftime
today.strftime('%Y-%m-%d %H:%M:%S')
datetime.time
时分秒构成具体时间
hour
,minute
,second
,microsecond
, andtzinfo
.
-
创建时间对象
t = datetime.time(9, 50, 20)
-
strftime
t.strftime('%Y-%m-%d %H:%M:%S')
datetime.datetime
日期和时间
year
,month
,day
,hour
,minute
,second
,microsecond
, andtzinfo
.
-
创建日期时间对象
dt = datetime.datetime.today() d2 = datetime.datetime(2018, 10, 1, 8, 12, 34, 2000)
-
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.定义模板
-
在项目根目录中创建templates目录用来保存所有模板
-
在templates目录中为应用创建各自的模板目录,比如:
templates/users
# 保存用户应用的模板templates/goods
# 保存商品应用的模板templates/orders
# 保存订单应用的模板
3.模板渲染
1. HttpResponse方式
- 获取模板对象
- 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. 模板语句
- for 循环
- if 条件
3. 过滤器
语法
变量|过滤器:参数
4. 注释
1)单行注释语法如下:
{#...#}
2)多行注释使用comment标签,语法如下:
{% comment %}
...
{% endcomment %}
5. 模板继承
-
父模板
{% block 名称 %} 预留区域,可以编写默认内容,也可以没有默认内容 {% endblock 名称 %}
-
子模板
标签extends:继承,写在子模板文件的第一行。
-
{% block 名称 %} 预留区域,可以编写默认内容,也可以没有默认内容 {% endblock 名称 %}
表单类
作用
- 生成表单页面
- 表单提交数据的验证
使用
- 在应用中创建forms模块,定义表单类
- 调用表单类
- 创建表单类对象,渲染返回给客户端
- 创建表单类,传入客户端表单提交的数据。验证数据,通过返回验证通过后的数据
接口
接口就是封装了一个特定的功能,但是我们不需要知道内部是怎么实现的
应用接口
接口四要素:
- 接口地址
- 请求方式
- 请求参数是什么
- 响应格式(json/xml)
编写接口文档