項目流程五步走: 1.需求分析: 分析出可以實現的需求來 2.項目設計: 框架的設計,語言的使用,數據庫的使用(主庫+緩存庫),功能的劃分,框架的設計 3.分組開發: 將項目拆分紅一個個的模塊, 交給不一樣的組去完成 4.測試 自我測試 測試部門測試(*****) 注:顯而易見的bug(語法異常) 會扣 績效 5.交付上線 交給運維去上線 開發者筆記(*****):小白到大牛的 技能成長曆程 數據庫表設計: 用到的表: 用戶表,我的站點表,標籤表,分類表,文章表,點贊點踩表,評論表: 用戶表 對 我的站點表: 一對一; 我的站點表 對 標籤表,分類表,文章表: 一對多; 標籤表 對 文章表: 多對多; 分類表 對 文章表: 一對多; 點贊點踩表 對 用戶表,文章表 一對多; 評論表 對 用戶表,文章表 一對多 註冊: 1.forms組件 實例化一個空對象 用戶名 密碼 確認密碼 郵箱 2.利用forms組件渲染前端頁面 用 ajax 提交,而不用form表單提交 3.手動搭建獲取用戶頭像的 input框 1.點擊圖片彈出選擇框 利用 label標籤 與 input 有綁定的關係的特徵 2.文件閱讀器 (新知識點),實現圖片的實時展現 4.後端 建立 用戶時 利用 **{} 1.獲取 用戶 頭像 要作 判斷 5.數據校驗不經過時, 將不過的信息 展現到對應的input框xia 1.forms 組件 渲染的input框 的 id值 固定格式 id_字段名 2.前端for循環字段 手動拼接id值 3.給span 添加 報錯信息 給所在的div 加 has-error 6.用戶在冊點擊input,將報錯信息 has-error 移除 登陸: 1.圖片驗證碼 1.隨機驗證碼 (*****) 2.img src屬性 可寫 圖片路勁,url,接收二進制數據 3.pillow模塊的應用, 生成圖片驗證碼必備的對象 pip3 install pillow 極驗: 滑動 驗證碼 免費試用 https://blog.csdn.net/wfy2695766757/article/details/81193370, https://www.liaoxuefeng.com/wiki/1016959663602400/1017785454949568, 4.後端先校驗圖片驗證碼是否正確,而後判斷用戶輸入的用戶名和密碼是否一致 頁面搭建 註銷與修改密碼: 能夠用模態框作出效果 admin後臺管理: 是一個幫你快速實現註冊了的模型表數據的增刪改查; 用法: 1.先建立一個超級用戶 createsuperuser 使用步驟: 1.先去 對應的應用下的admin.py 中註冊你想要操做的表 admin.site.registe(userinfo) 2.使用超級管理員帳戶 進行數據的管理 注: django admin 會自動給註冊了的模型表生產四條url 用戶頭像展現: 網站使用的靜態文件通常都放在static文件夾下; 用戶上傳的靜態文件通常放在專門的文件夾下(css,js,img,font) settings配置: MEDIA_ROOT = os.path.join(BASE_DIR,'media') url 路由配置: from django.views.static import serve from app01 import settings urls = [ url(r'^media/(?P<path>.*)',serve,{'document_root':settings.MEDIA_ROOT} ] 注: 該配置能夠支持你暴露後端任意文件夾資源 我的主頁搭建: 1.頁面佈局 左右佈局 2.左側的側邊欄 文章分類 文章標籤 日期歸檔 3.有側是該用戶的全部的文章 4.側邊欄前端頁面渲染 1.查詢當前用戶每個分類下的文章 2.查詢當前用戶每個標籤下的文章數 3.按照年月對文章進行分組並統計個數 將結果傳遞到前端 完成前端樣式展現 5.側邊欄篩選 1.參考博客園 設計篩選功能的url username/category/1 username/tag/1 username/archive/2019-10 #用正則 將 三條url 整合成一條 2.篩選功能 對查詢出來的數據在進行一層過濾篩選 側邊欄渲染:模板的繼承 自定義:inclusion_tag 1,在應用內新建一個名字必須叫 templatetags 文件夾 2,夾內 建 任意 py文件 3,固定語式 form django import template register = template.Library() 4.日期歸檔 相關 -官方提供 from django.db.models.functions import TruncMonth models.Article.objects .annotate(month=TruncMonth('create_time')) # Truncate to month and add to select list .values('month') # Group By month .annotate(c=Count('id')) # Select the count of the grouping .values('month', 'c') # (might be redundant, haven't tested) select month and count 文章詳情頁: 點贊點踩功能: 1.前端頁面點贊點踩樣式拷貝 1.html和css代碼 都要 拷貝 2.點贊點踩圖片設置了防盜鏈,建議下載下來 3.如何區分頁面是點贊仍是點踩 給贊與踩的圖標添加一個公共的樣式類 給樣式類綁定一個點擊樣式 再利用this判斷 當前被點擊對象是否有摸個獨立的樣式 4.發送ajax請求 參數 兩個 文章主鍵 點贊或點踩 5.後端 1.後端接收到的用戶點贊點踩參數是一個前端js的布爾值, 你能夠用json.loads轉換爲後端的布爾值類型 2.驗證當前請求是不是ajax請求 request.is_ajax() 3.驗證當前用戶是否登陸 request.user.is_authenticated() 4.驗證當前文章是不是當前用戶本身寫的 xxx 5.驗證當前文章是否已經被當前用戶點過贊或踩了 xxx 6.操做數據庫 6.前端展現提示信息 點贊或點踩成功 要將前端頁面對應的數字在原來的基礎上加一; 用戶評論: 1.前端獲取用戶評論樣式搭建 只要用戶登陸才能看到評論 2.前端利用ajax 發送 評論請求 當前文章的主鍵 評論的內容 3.後端: 1.驗證是不是ajax請求 獲取主鍵 評論內容 2. 操做數據庫 利用事物 完成兩個地方的同步 1.文章表裏的評論普通字段 2.評論表記錄 3.前端展現評論樓信息 後端獲取當前文章全部評論到前端 4.評論渲染 用戶點擊提交按鈕 輸了渲染外 還要將textarea框內容清空 1.dom 靈石渲染 2.render永久渲染 在渲染頁面是, for循環文章全部的評論一一渲染 5.子評論功能 子評論和跟評論的區別在paren_id 是否有值 思路: 點擊回覆按鈕發身的是: 1.獲取當前登陸用戶想要評論的那條評論人的用戶名憑藉成 @用戶名\r\n 2.將拼接好的內容添加到textares框中 3.textarea框字段聚焦 4.評論 子評論/跟評論 都是點擊一個按鈕 5.不管 是子評論/根評論 均可提交一個 parent_id 不管他是否有值 6.點擊回覆按鈕時 除了獲取評論人的用戶名外 後臺管理: 跟評論: 子評論: