前言
在获取表单数据的时候,Django提供了三种方式来供我们使用.
一.创建数据表以及数据
创建数据表 models.py:
from django.db import models
# Create your models here.
class Business(models.Model):
# 默认有个自增的id列,并且是主键
caption = models.CharField(max_length=32)
code = models.CharField(max_length=32,default='sa')
插入数据(在这里,手动插入几条数据,以供检测使用):
mysql> select * from app01_business;
+----+-----------+------+
| id | caption | code |
+----+-----------+------+
| 1 | 开发部 | sa |
| 2 | 测试 | sa |
| 3 | 运维 | sa |
+----+-----------+------+
3 rows in set (0.00 sec)
二.获取表单数据
1.以对象形式获取
views.py
v1 = models.Business.objects.all() # 获取所有数据
# v1返回的是一个QuerySet对象,里面包含的是各个数据,每个数据都是一个对象:
# [obj(id,caption,code),obj(id,caption,code),...]
2.以字典形式获取
v2 = models.Business.objects.all().values('id','caption')
# 这时v2还是一个QuerySet对象,但是内部元素就变成了字典
3.以元组形式获取
v3 = models.Business.objects.all().values_list('id','caption')
# 这是v3还是一个QuerySet对象,但是内部元素就变成了元组
views.py中的完整代码如下:
from django.shortcuts import render,HttpResponse
from app01 import models
# Create your views here.
def business(request):
v1 = models.Business.objects.all() # 获取所有数据
# QuerySet
# [obj(id,caption,code),obj(id,caption,code),...]
v2 = models.Business.objects.all().values('id','caption')
# 这时v2还是一个QuerySet对象,但是内部元素就变成了字典
v3 = models.Business.objects.all().values_list('id','caption')
# 这是v3还是一个QuerySet对象,但是内部元素就变成了元组
return render(request,'business.html',{'v1':v1,'v2':v2,'v3':v3})
写一个简单的前端文件来获取这些数据:
business.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>business</title>
</head>
<body>
<h1>业务线列表(对象方式)</h1>
<ul>
{% for row in v1 %}
<li>{{ row.id }}-{{ row.caption }}-{{ row.code }}</li>
{% endfor %}
</ul>
<h1>业务线列表(字典方式)</h1>
<ul>
{% for row in v2 %}
<li>{{ row.id }}-{{ row.caption }}</li>
{% endfor %}
</ul>
<h1>业务线列表(元组方式)</h1>
<ul>
{% for row in v3 %}
<li>{{ row.0 }}-{{ row.1 }}</li>
{% endfor %}
</ul>
</body>
</html>
最终效果如下:
写在最后
本文是个人的一些学习笔记,如有侵权,请及时联系我进行删除,谢谢大家.