国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

對比分析Django的Q查詢及AngularJS的Datatables分頁插件

2019-11-19 17:42:20
字體:
來源:轉載
供稿:網友

使用Q查詢,首先要導入Q模塊:

from django.db.models import Q

可以組合使用&,|操作符用于多個Q的對象,產生一個新的Q對象,Q對象也可以用~操作符放在前面表示否定,如下例所示:

if search:   keywords_list = search.split(' ')   query_list = [Q(status__icontains=get_success_fail_status(keyword)) if get_success_fail_keyword_status(keyword) else       Q(username__icontains=keyword) |       Q(groupid__icontains=keyword) |       Q(status_active_vs__icontains=keyword) |       Q(orders_created_time__icontains=keyword) |       Q(status_bind__icontains=keyword) |       Q(status_active_Bind__icontains=keyword) |       Q(env__icontains=keyword) for keyword in keywords_list]   q = Q()   for query in query_list:    q.add(query, Q.AND) #把query添加到之前定義的最外層的Q對象中,查詢條件是 '和'

其中Q查詢里面的 __icontains 表示包含的關系,用于模糊查詢,如:

Q(username__icontains=keyword) | Q(groupid__icontains=keyword) 表示查詢 username或者 groupid

再談談AngularJS的Datatables分頁插件:

Datatables的主要功能是分頁、即時搜索和排序,雖然django自帶的模板引擎也有分頁功能(Paginator),但無論從功能上還是美觀上,Datatables都更好。

Datatables的效果如下圖所示:

下面講一下Datatables的DTOptionsBuilder方法:

DTOptionsBuilder.newOptions是AngularJS的datatables的一個重要的方法,.newOptions用于實現前后端分頁,

DTOptionsBuilder.newOptions() .withOption('ajax', {  url: "/api/other/get_http_https_apply/",  type: 'GET' }) .withDataProp('data') .withOption('serverSide', true) .withPaginationType('full_numbers') .withOption('createdRow', createdRow) .withOption('order', [  [0, 'desc'] ]);

'serverSide', true 表示開啟服務器模式,

ajax表示數據的來源(包括處理分頁,排序,過濾),

full_numbers表示所有的數據,

http_https.dtColumns = [  DTColumnBuilder.newColumn('id').withTitle('ID'),  DTColumnBuilder.newColumn('username').withTitle('申請人'),  DTColumnBuilder.newColumn('env').withTitle('環境'),  DTColumnBuilder.newColumn('groupid').withTitle('group_id'),  DTColumnBuilder.newColumn('status_active_vs').withTitle('激活vs').renderWith(apply_status),  DTColumnBuilder.newColumn('status_bind').withTitle('綁定').renderWith(apply_status),  DTColumnBuilder.newColumn('status_active_Bind').withTitle('激活綁定').renderWith(apply_status),  DTColumnBuilder.newColumn('status').withTitle('最終結果').renderWith(apply_status),  DTColumnBuilder.newColumn('orders_created_time').withTitle('時間') ]; //判斷是否是admin用戶,如果是admin,則在http_https.dtColumns這個數組中增加(push)一個元素 if (http_https.js_admin) {  http_https.dtColumns.push(DTColumnBuilder.newColumn(null).renderWith(actionsHtml).withTitle('Actions')) }

DTColumnBuilder.newColumn表示新增表格的列

.renderWith對數據進行渲染  這里apply_status是我自己寫的一個函數,用于轉換json中True和False對應的html中的“成功、失敗”

部分詳情代碼請見我的github:https://github.com/a342058040/Django_AngularJS_Datatables.git

以上所述是小編給大家介紹的對比分析Django的Q查詢及AngularJS的Datatables分頁插件,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對武林網網站的支持!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 察雅县| 鹤壁市| 周宁县| 雅江县| 溧水县| 林西县| 泰和县| 宁阳县| 锡林郭勒盟| 新乡市| 阿克苏市| 奇台县| 瑞昌市| 凤冈县| 安国市| 焦作市| 东阳市| 什邡市| 武定县| 自治县| 长白| 黄平县| 娄烦县| 西乌| 安仁县| 遂昌县| 澄江县| 北票市| 天等县| 古蔺县| 边坝县| 福泉市| 万山特区| 法库县| 辽源市| 巴东县| 龙游县| 化德县| 黄梅县| 阿克陶县| 横峰县|