django获取表单数据
django获取单表数据的三种方式
v1 = models.Business.objects.all()
# v1是QuerySet的列表 ,内部元素都是对象
v2 = models.Business.objects.all().values('id','caption') //这里不加all()也可以
# v2是QuerySet的列表 ,内部元素都是字典
v3 = models.Business.objects.all().values_list('id','caption') //这里不加all()也可以
# v3是QuerySet的列表 ,内部元素都是元组
def business(request):
v1 = models.Business.objects.all()
v2 = models.Business.objects.all().values('id','caption')
v3 = models.Business.objects.all().values_list('id','caption')
print(v1,v2,v3)
return render(request, 'business.html', {'v1': v1, 'v2': v2, 'v3': v3})
business.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title></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>
获取一个对象
方法一:如果存在就返回一个对象,如果不存在就报错,不推荐
models.Business.objects.get(id=1)
方法二:如果存在就返回一个对象,不存在就返回none,推荐
models.Business.objects.filter(id=1).first()
外键:
class Business(models.Model):
caption = models.CharField(max_length=32)
code = models.CharField(max_length=32,null=True,default='SA')
class Host(models.Model):
id = models.AutoField(primary_key=True)
hostname = models.CharField(max_length=32)
ip = models.GenericIPAddressField(protocol='ipv4')
port = models.IntegerField()
b = models.ForeignKey(to='Business',to_field='id')
v = models.Host.objects.filter(nid__gt=0)
v[0].b.caption ----> 通过点(.)进行跨表

实例:跨表查询的三种方式
def host(request):
host_obj = models.Host.objects.all()
host_obj2 = models.Host.objects.filter(b__caption='运维').values('id','hostname','ip','port','b__code')
for i in host_obj2:
print(i['id'],i['hostname'],i['ip'],i['port'],i['b__code'])
host_obj3 = models.Host.objects.filter(b__caption='运维').values_list('id', 'hostname', 'ip', 'port', 'b__code')
return render(request,'host.html',{'host_obj':host_obj,'host_obj2':host_obj2,'host_obj3':host_obj3})
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<h2>对象</h2>
<table border="1px">
<thead>
<tr>
<th>ID</th>
<th>主机名</th>
<th>ip</th>
<th>port</th>
<th>业务线</th>
<th>业务线编码</th>
</tr>
</thead>
<tbody>
{% for i in host_obj %}
<tr hid="{{ i.id }}" bid="{{ i.b_id }}">
<td>{{ forloop.counter }}</td>
<td>{{ i.hostname }}</td>
<td>{{ i.ip }}</td>
<td>{{ i.port }}</td>
<td>{{ i.b.caption }}</td>
<td>{{ i.b.code }}</td>
</tr>
{% endfor %} </tbody>
</table>
<h2>字典</h2>
<table border="1px">
<thead>
<tr>
<th>ID</th>
<th>主机名</th>
<th>ip</th>
<th>port</th>
<th>业务线编码</th>
</tr>
</thead>
<tbody> {% for i in host_obj2 %}
<tr hid="{{ i.id }}" bid="{{ i.b_id }}">
<td>{{ forloop.counter }}</td>
<td>{{ i.hostname }}</td>
<td>{{ i.ip }}</td>
<td>{{ i.port }}</td> <td>{{ i.b__code }}</td>
</tr>
{% endfor %} </tbody>
</table>
<h2>元组</h2>
<table border="1px">
<thead>
<tr>
<th>ID</th>
<th>主机名</th>
<th>ip</th>
<th>port</th>
<th>业务线编码</th>
</tr>
</thead>
<tbody> {% for i in host_obj3 %}
<tr hid="{{ i.0 }}" bid="{{ i.b_id }}">
<td>{{ forloop.counter }}</td>
<td>{{ i.1 }}</td>
<td>{{ i.2 }}</td>
<td>{{ i.3 }}</td>
<td>{{ i.4 }}</td>
</tr>
{% endfor %} </tbody>
</table> </body>
</html>
django获取表单数据的更多相关文章
- Servlet的5种方式实现表单提交(注册小功能),后台获取表单数据
用servlet实现一个注册的小功能 ,后台获取数据. 注册页面: 注册页面代码 : <!DOCTYPE html> <html> <head> <meta ...
- ASP.NET MVC 获取表单数据
public class Person { public string Name{get;set;} public string Phone{get;set;} } view层 @model Mode ...
- 1.3(学习笔记)Servlet获取表单数据
一.Servlet获取表单数据 表单提交数据经由Servlet处理,返回一个处理结果显示在页面上, 那么如何获取表单提交的参数进出相应的处理呢? 主要用到以下方法: String getParame ...
- JSP简单练习-获取表单数据
在JSP中,server端程序与client交互最经常使用的方法就是採用表单提交数据.表单提交的方法主要有两种,一种是get方法.还有一种是post方法.两者最大的差别:使用get方法提交的数据会显示 ...
- php学习笔记-获取表单数据
在网页上经常要填写用户名和密码,点击确认按纽之后,用户名和密码经过前端处理之后发送到了服务器上,那么服务器端怎么获取到这些用户提交的数据呢?就是通过超级全局变量 _POST和_GET 先拿_POST做 ...
- Servlet 响应 响应相关与重定向 请求 获取表单数据2种方法
一.HttpServletResponse (响应) 包括下面三个: 1.响应消息行 HTTP/1.1 200 OK 200是HTTP状态码, 代表请求已成功. (查httpservletres ...
- JS--轻松设置获取表单数据
接触过Angularjs的都知道,ng支持双向绑定,我们可以轻轻松松的通过ngModel将我们的值绑定到界面,当修改了值提交表单的时候不需要再重新通过ID去重新抓取输入框信息了.那对于我们开发前台网站 ...
- FromData获取表单数据
一般想要不刷新页面提交数据时,可以使用ajax提交.如果数据量不大可以自己写json数据用ajax提交到后台服务,但是数据量多且需要动态添加数据时,自己写json格式数据就有点麻烦了,这时候就需要Fo ...
- 用Servlet获取表单数据
用Servlet获取表单数据 在webroot下新建userRegist2.jsp 代码如下: <%@ page contentType="text/html;charset=gb23 ...
随机推荐
- Gym - 101806Q:QueryreuQ(回文树)
A string is palindrome, if the string reads the same backward and forward. For example, strings like ...
- Codeforces483B. Friends and Presents(二分+容斥原理)
题目链接:传送门 题目: B. Friends and Presents time limit per test second memory limit per test megabytes inpu ...
- music cube
music cubehttps://www.youtube.com/watch?v=HBCdC7r7Mp4Blender Tutorial: Make anything react with musi ...
- Go Example--切片
package main import ( "fmt" ) func main() { //make来初始化一个切片,必须指名切片的长度 s:= make([]string, 3) ...
- Python知识点整理,基础4 - 集合操作
- mac 打印机无法打印
每次打印word的时候都无法正常打印,提示嘀嘀响声. 文件->页面设置-> 纸张A4 即可
- 新鲜出炉一份Java面试清单,共200+道题
一.Java 基础 1.JDK 和 JRE 有什么区别? 答:JRE是java运行时环境,包含了java虚拟机,java基础类库.是使用java语言编写的程序运行所需要的软件环境,是提供给想运行jav ...
- sql-索引的作用
(一)深入浅出理解索引结构 何时使用聚集索引/非聚集索引 结合实际,谈索引使用的误区 其他书上没有的索引使用经验总结 其他注意事项 (二)改善SQL语句 (三)实现小数据量和海量数据的通用分页显示存储 ...
- 关于 php json float 出现很多位的问题
关于 php json float 出现很多位的问题 serialize_precision http://php.net/manual/en/ini.list.php https://wiki.ph ...
- CloudStack学习-3
此次试验主要是CloudStack结合openvswitch 背景介绍 之所以引入openswitch,是因为如果按照之前的方式,一个网桥占用一个vlan,假如一个zone有20个vlan,那么岂不是 ...