91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python自動化運維開發----基礎(十六) 重寫Django框架中ListView查詢

發布時間:2020-06-26 23:14:51 來源:網絡 閱讀:1035 作者:Demon寬 欄目:編程語言

1.? 說明

重寫Django框架中的ListView的get_queryset(),沒有使用Django的models去建表,使用MySQLdb去連接數據庫查詢數據

2. 安裝分頁插件

pip install django-pure-pagination

3. urls.py文件

from?django.urls?import?path,re_path
from?asset?import?views
app_name?=?'asset'
urlpatterns?=?[
????path('cabinetslist/',views.CabinetListView.as_view(),name="cabinets"),
]

4. views.py

#?導入view
from?django.views.generic?import?ListView
#?導入自定義模塊
from?pure_pagination.mixins?import?PaginationMixin

#?導入model中的sql查詢
from?.models?import?cabinet_list

class?CabinetListView(PaginationMixin,ListView):
????template_name?=?"asset/cabinet_list.html"
????context_object_name?=?"cabinetslist"
????paginate_by?=?5
????def?get_queryset(self):
????????cabinetslist?=?cabinet_list()
????????return?cabinetslist

5. model.py

#查詢機房列表
def?cabinet_list():
????sql?=?'SELECT?t.cabinet_id,t.cabinet_name,t.cabinet_site,t.cabinet_person,t.cabinet_phone,rack_cabinet_id,server_cabinet??from?(SELECT?a.cabinet_id,a.cabinet_name,a.cabinet_site,a.cabinet_person,a.cabinet_phone,COUNT(b.server_cabinet)?as?server_cabinet?FROM?cabinet?a?LEFT?JOIN?server??b?ON?a.cabinet_id?=?b.server_cabinet?GROUP?BY?a.cabinet_id)?as?t,(SELECT?c.cabinet_id,COUNT(d.rack_cabinet_id)?AS?rack_cabinet_id?FROM?cabinet?c?LEFT?JOIN?rack?d?ON?c.cabinet_id?=?d.rack_cabinet_id?GROUP?BY?c.cabinet_id)?as?p?WHERE?t.cabinet_id?=?p.cabinet_id'
????rt_cnt,?lines?=?MySQLUtil.dql(sql,?(),?True)
????cabinets?=?[]
????for?cabinet?in?lines:
????????cabinets.append({
????????????'cabinet_id':?cabinet[0],
????????????'cabinet_name':?cabinet[1],
????????????'cabinet_site':?cabinet[2],
????????????'cabinet_person':?cabinet[3],
????????????'cabinet_phone':?cabinet[4],
????????????'cabinet_rack_count':?cabinet[5],
????????????'cabinet_server_count':?cabinet[6]
????????})
????return?cabinets

6. mysqlutils.py

import?MySQLdb
MYSQL_HOST?=?'127.0.0.1'
MYSQL_PORT?=?3306
MYSQL_USER?=?'root'
MYSQL_PASSWORD?=?''
MYSQL_DB?=?'cmdb1'

class?MySQLUtil(object):

????@staticmethod
????def?dql(sql,?args,?fetch_all=True):
????????rt_cnt,?rt_tuple?=?0,?()
????????conn?=?MySQLdb.connect(host=MYSQL_HOST,?port=MYSQL_PORT,?user=MYSQL_USER,?passwd=MYSQL_PASSWORD,?db=MYSQL_DB,
???????????????????????????????charset='utf8mb4')
????????cursor?=?conn.cursor()
????????rt_cnt?=?cursor.execute(sql,?args)
????????if?fetch_all:
????????????rt_tuple?=?cursor.fetchall()
????????else:
????????????rt_tuple?=?cursor.fetchone()
????????cursor.close()
????????conn.close()
????????return?rt_cnt,?rt_tuple

????@staticmethod
????def?dml(sql,?args):
????????conn?=?MySQLdb.connect(host=MYSQL_HOST,?port=MYSQL_PORT,?user=MYSQL_USER,?passwd=MYSQL_PASSWORD,?db=MYSQL_DB,
???????????????????????????charset='utf8mb4')
????????cursor?=?conn.cursor()
????????rt_cnt?=?cursor.execute(sql,?args)
????????conn.commit()
????????cursor.close()
????????conn.close()
????????return?rt_cnt

7.? 實現效果

Python自動化運維開發----基礎(十六) 重寫Django框架中ListView查詢

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

南城县| 垫江县| 板桥市| 宜城市| 吉木萨尔县| 修文县| 长沙县| 渑池县| 稷山县| 温宿县| 黄石市| 普陀区| 鹤山市| 正镶白旗| 富川| 广丰县| 盐源县| 娄烦县| 东乡县| 云浮市| 金塔县| 临夏县| 巴里| 肥西县| 华坪县| 寻甸| 金塔县| 龙井市| 永修县| 洮南市| 扶余县| 呼和浩特市| 库伦旗| 五大连池市| 紫云| 高雄县| 西华县| 健康| 东乡县| 当雄县| 长治市|