1. 程式人生 > >Django框架學習筆記(14.一對多跨表操作)

Django框架學習筆記(14.一對多跨表操作)

繼續上次的Django工程,在資料庫中加入一些資料:

在views.py加入:

def host(request):
    v1 = models.Host.objects.filter(nid__gt=0)
    return render(request, 'host.html', {'v1': v1})

host.html:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body> <h1>業務線列表</h1> <table border="1"> <thead> <tr> <th>主機名</th> <th>IP</th> <th></th> <th>業務線名稱</th> </tr> </thead> <tbody> {% for row in v1 %} <tr
hid="{{ row.nid }}" bid="{{ row.b_id }}"> <td>{{ row.hostname }}</td> <td>{{ row.ip }}</td> <td>{{ row.port }}</td> <td>{{ row.b.caption }}</td> </tr> {% endfor %} </tbody> </table>
</body> </html>

執行:


同樣這裡也可以有三種方法:

views.py:

def host(request):
    v1 = models.Host.objects.filter(nid__gt=0)
    v2 = models.Host.objects.filter(nid__gt=0).values('nid', 'hostname', 'b_id', 'b__caption')
    v3 = models.Host.objects.filter(nid__gt=0).values_list('nid', 'hostname', 'b_id', 'b__caption')
    return render(request, 'host.html', {'v1': v1, 'v2': v2, 'v3': v3})

host.html:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<h1>業務線列表(物件)</h1>
<table border="1">
    <thead>
    <tr>
        <th>主機名</th>
        <th>IP</th>
        <th></th>
        <th>業務線名稱</th>
    </tr>
    </thead>
    <tbody>
{% for row in v1 %}
        <tr hid="{{ row.nid }}" bid="{{ row.b_id }}">
            <td>{{ row.hostname }}</td>
            <td>{{ row.ip }}</td>
            <td>{{ row.port }}</td>
            <td>{{ row.b.caption }}</td>
        </tr>
{% endfor %}
    </tbody>
</table>
<h1>業務線列表(字典)</h1>
<table border="1">
    <thead>
    <tr>
        <th>主機名</th>
        <th>業務線名稱</th>
    </tr>
    </thead>
    <tbody>
{% for row in v2 %}
        <tr hid="{{ row.nid }}" bid="{{ row.b_id }}">
            <td>{{ row.hostname }}</td>
            <td>{{ row.b__caption }}</td>
        </tr>
{% endfor %}
    </tbody>
</table>
<h1>業務線列表(物件)</h1>
<table border="1">
    <thead>
    <tr>
        <th>主機名</th>
        <th>IP</th>
        <th></th>
        <th>業務線名稱</th>
    </tr>
    </thead>
    <tbody>
{% for row in v1 %}
        <tr hid="{{ row.nid }}" bid="{{ row.b_id }}">
            <td>{{ row.hostname }}</td>
            <td>{{ row.ip }}</td>
            <td>{{ row.port }}</td>
            <td>{{ row.b.caption }}</td>
        </tr>
{% endfor %}
    </tbody>
</table>
<h1>業務線列表(元組)</h1>
<table border="1">
    <thead>
    <tr>
        <th>主機名</th>
        <th>業務線名稱</th>
    </tr>
    </thead>
    <tbody>
{% for row in v3 %}
        <tr hid="{{ row.0 }}" bid="{{ row.2 }}">
            <td>{{ row.1 }}</td>
            <td>{{ row.3 }}</td>
        </tr>
{% endfor %}
    </tbody>
</table>
</body>
</html>

執行後:


相關推薦

Django框架學習筆記14.一對操作

繼續上次的Django工程,在資料庫中加入一些資料: 在views.py加入: def host(request): v1 = models.Host.objects.filter(nid_

Django框架學習筆記28.檔案上傳詳解

1.所有美觀的上傳按鈕原理: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-

Django框架學習筆記15.增加一對資料簡易示例

在上一篇建立好的Django工程的基礎上: urls.py: from django.contrib import admin from django.urls import path from django.conf.urls import url from app01

hibernate框架學習筆記8:一對關系案例

列名 let cas 同時 end update 數據庫驅動 測試 nsa 兩個實體類:客戶與聯系人,一個客戶可以有多個聯系人 客戶類: package domain; import java.util.HashSet; import java.util.Set;

TensorFlow+實戰Google深度學習框架學習筆記14------VGGNet

一、VGGNet:5段卷積【每段有2~3個卷積層+最大池化層】【每段過濾器個數:64-128-256-512-512】 每段的2~3個卷積層串聯在一起的作用: 2個3×3的卷積層串聯的效果相當於一個5×5的卷積層,即一個畫素會跟周圍5×5的畫素產生關聯。【28*28的輸入經過一次5*5得到24*24,s=

Django框架學習筆記21.Session例項

基於Cookie做使用者驗證時:不適合把敏感資訊(如密碼)放在Cookie中,因為可以Cookie是可以看見的。 Cookie優勢:減輕了服務端的壓力 接下來介紹Session:     Cooki

Django框架學習筆記25.Form元件驗證

簡單的使用者註冊: urls.py加入: url(r'^fm/$', views.fm), views.py: from django import forms class FM(forms.

Django框架學習筆記9.ORM基本操作

app下的models.py: from django.db import models # Create your models here. class UserInfo(models.Mode

Django框架學習筆記22.CSRF原理簡單介紹

前面我們寫Django的時候,都要在settings.py裡把CSRF註釋掉,這裡其實是Django提供的一層防護,防止提交的資料含有XSS攻擊,只有請求裡面含有CSRF令牌(隨機字串)才可以通過,否

Django框架學習筆記4.簡單的總結

這裡對前面三節的知識做個簡單的總結: 一、基本操作: 1.建立Django工程:     django-admin startproject [工程名] 2.建立app:     cd [工程名]     python manage.py startapp [app名稱]

Django框架學習筆記16.利用ajax實現簡易的驗證

繼續上一篇的例子: host.html: <!DOCTYPE html> <html lang="en" xmlns="http://www.w3.org/1999/html"> <head> <meta charset=

Django框架學習筆記19.自定義分頁

在講自定義分頁之前,先講一個簡單的。 在模板語言中還有一些特殊的存在,比如這個: def tpl4(request): name = "asdf123456" return render(request, 'tpl4.html', {'name': name})

Django框架學習筆記27.Ajax簡單操作

原生Ajax: urls.py: url(r'^ajax/$', views.ajax), url(r'^ajax_json/$', views.ajax_json), views.py: de

1.mysql學習筆記在命令行中的操作

style 登錄 left 多個數據庫 mysql 一個數據庫 weight 準備 ase 2018-07-28 mysql和oracle的不同點: 一個oracle就是一個數據庫。 而一個mysql中可以有多個數據庫 準備:登錄到數據庫 註意:每一個命令都要以分號結束

ETL-Kettle學習筆記入門,簡介,簡單操作

KETTLE Kettle:簡介 ETL:簡介 ETL(Extract-Transform-Load的縮寫,即資料抽取、轉換、裝載的過程),對於企業或行業應用來說,我們經常會遇到各種資料的處理,轉換,遷移,所以瞭解並掌握一種etl工具的使用,必不可少的,Kettle就是強大的ETL工具。 Kettle:概念

EF6學習筆記四:一對、一對一關係配置Fluent API

  要專業系統地學習EF前往《你必須掌握的Entity Framework 6.x與Core 2.0》這本書的作者(汪鵬,Jeffcky)的部落格:https://www.cnblogs.com/CreateMyself/     現在就來到了重中之重的配置了:一對

Django學習筆記14——AJAX與Form元件知識補充區域性鉤子和全域性鉤子詳解

   我在之前做了一個關於AJAX和form元件的筆記,可以參考:Django學習筆記(8)——前後臺數據互動實戰(AJAX);Django學習筆記(6)——Form表單     我覺得自己在寫Django筆記(8)的時候,我只是對AJA

php laravel框架學習筆記 數據庫操作

true 數據 mar sql show top 一行 ati del 原博客鏈接:http://www.cnblogs.com/bitch1319453/p/6810492.html mysql基本配置 你可用通過配置環境變量,使用cmd進入mysql,當然還有一種東

QT學習筆記14 定時器類DTimer的使用

fin isa play htm number conn stat alt .cn 一、   在前面的學習筆記中,我們已經學習定時器事件http://www.cnblogs.com/blog-ccs/p/7445323.html   現在,我們學習QTimer定時器類,比較

redis學習筆記14---redis基本命令總結

del diff lan 命令 列表 對象 很多 順序 reg http://doc.redisfans.com/ 網頁,對所有redis命令的用法與示例進行了詳細的描述 概述 Redis的鍵值可以使用物種數據類型:字符串,散列表,列表,集合,有序集合。本文詳細介紹這