原创 Django Rest_Framework之視圖類和通用視圖類以及子類

一.反序列化器保存數據 前面的驗證數據成功後,我們可以使用序列化器來完成數據反序列化的過程.這個過程可以把數據轉成模型類對象. 可以通過實現create()和update()兩個方法來實現。 1.添加數據: class Books

原创 Django之菜單排序、路徑導航、訪問子菜單時二級菜單默認展開、權限精確到按鈕級別

一.一級菜單排序 實現思路: 在一級菜單表中加一個權重字段,根據這個字段來排序。 weight = models.IntegerField(default=1) # 權重 左側菜單欄根據這個來排序 那麼獲取用戶權限時就要獲取

原创 Django中auto_now和auto_now_add

創建一張表: class DateTest(models.Model): import datetime name = models.CharField(max_length=32,default='1')

原创 Django之權限分配展示

一.角色展示 角色展示: def role(request): all_role = models.Role.objects.all() return render(request,'rbac/role_list.

原创 CentOS7下部署Django項目

部署是基於centos7+nginx+uwsgi+python3+django+mysql 一.安裝mysql 1 下載並安裝MySQL官方的 Yum Repository wget -i -c http://dev.mysql.

原创 Django數據庫配置報錯object supporting the buffer API required

錯誤一:object supporting the buffer API required 需要將settings.py中mysql配置的密碼改爲字符穿: DATABASES = { 'default': {

原创 Django之權限RBAC

一.RBAC概念 RBAC基於角色的權限訪問控制(Role-Based Access Control) 在計算機系統安全中,基於角色的訪問控制(RBAC)或基於角色的安全性是一種將系統訪問限制在授權用戶的方法。它被大多數員工超過5

原创 Django之左側菜單欄權限和二級菜單

一.左側菜單欄權限 像下面的這種左側菜單欄如果用戶沒有權限就直接不展示,不然沒權限展示了也沒什麼用 實現思路: 在Permission表中加一個字段用來標記是否是左側菜單,通過這個字段來判斷用戶是否有左側菜單欄的權限。 clas

原创 Django之批量生成數據和modelformset

一.批量生成數據 需求:點擊【批量生成學習記錄】後將下面的課程記錄生成學習記錄 表結構: from django.db import models from multiselectfield import MultiSelec

原创 Django之跳轉回原路徑

問題:圖書管理系統點擊編輯之後跳轉的不是當前編輯的頁數, 而是跳轉到了第一頁去了,這對用戶來說是體驗很不好的, 編輯完成之後還要翻到那一頁看一下有沒有編輯成功,下面就來解決一下這個問題: 實現思路: 在get請求路勁

原创 Django之搜索和保存搜索條件

一.搜索 需求:根據書名或者作者名字來進行搜索: html文件: 地址:html <form class="form-inline"> <div class="form-group"> <select name=

原创 Django之添加編輯整合及批量刪除和公私戶轉換

一.添加 書籍系統: 添加視圖函數: def add_edit_book(request): if request.method == 'GTE': book_from = BookModelForm()

原创 Django之自定義分頁組件

一.分頁邏輯 from django.utils.safestring import mark_safe #mark_safe:安全字符串 class MyPage: def __init__(self, page_

原创 Django之同源和跨域、CSRF詳解

一.CSRF 全稱是Cross Site Request Forgery,字面意思是跨站點僞造請求。 攻擊者通過HTTP請求江數據傳送到服務器,從而盜取回話的cookie。盜取回話cookie之後,攻擊者不僅可以獲取用戶的信息,還

原创 Django之form進階和ModelForm

一.form進階 1.字段批量添加樣式: def __init__(self,*args,**kwargs): super(BookForm,self).__init__(*args,**kwargs) for f