60分鐘用Django寫一個Python個人博客
前幾天剛是社群的小夥伴寫了個博客,Django寫博客是很多學習Python人必經之路,今天我特別整理了一個建博客實錄出來希望可以是Django學習之路的一個好啟發,希望對大家有幫助。
——————————
Django是一個開放源代碼的Web應用框架,由Python寫成。採用了MVC的框架模式,即模型M,視圖V和控制器C。它最初是被開發來用於管理勞倫斯出版集團旗下的一些以新聞內容為主的網站的,即是CMS(內容管理系統)軟體。並於2005年7月在BSD許可證下發布。這套框架是以比利時的吉普賽爵士吉他手Django Reinhardt來命名的。
Django是一個基於MVC構造的框架。但是在Django中,控制器接受用戶輸入的部分由框架自行處理,所以Django 里更關注的是模型(Model)、模板(Template)和視圖(Views),稱為MTV模式。
Django適合快速開發web開發。
1.1 Django的結構模型
1.2 Django相關依賴的環境和安裝
1.準備一個linux的虛擬機
2.安裝一個pyenv:具體安裝的方法看這裡
http://www.yulongjun.com/python/20170507-02-pyenv-centos/
3.通過pyenv 安裝一個python3.6.2
pyenv install 3.6.2
4.使用pip安裝:
pip install django==1.11pip install mysqlclient
5.安裝mysql資料庫
1.3 Django的簡單配置
新建一個項目:
django-admin startproject blog
在項目裡面新建一個app和相關的模版靜態文件:
cd blogpython manage.py startapp aricltemkdir templatesmkdir staticmkdir media
配置相關的設置
cd blogvim settings.pyvim urls.py
settings.py配置
urls.py配置
2.Django操作資料庫
2.1 Django裡面主要使用orm來操作資料庫
我們來看下什麼是orm
使用orm有什麼好處
Dajngo的orm-model
1.什麼是ORM?
ORM,即Object-Relational Mapping(對象關係映射),它的作用是在關係型資料庫和業務實體對象之間作一個映射,這樣,我們在具體的操作業務對象的時候,就不需要再去和複雜的SQL語句打交道,只需簡單的操作對象的屬性和方法。
2.ORM的優缺點是什麼?
優點:擺脫複雜的SQL操作,適應快速開發;讓數據結構變得簡潔;資料庫遷移成本更低(如從mysql->oracle)
缺點:性能較差、不適用於大型應用;複雜的SQL操作還需通過SQL語句實現
2.2 Blog的數據結構
blog的常用的數據結構:
文章,分類,評論,註冊
一般來說一個blog至少包含這4個表
我們今天只寫文章表和分類表
大家可以先自己想下:
文章表和分類表包含的欄位是哪些?
文章和分類是什麼關係?
文章和用戶又是什麼關係?
表之間是否需要外鍵進行關聯?
表之間的關係:
一個用戶可以發表多篇文章
一個分類裡面也多篇文章
分類和用戶沒有直接的關係
理清這些之後,現在開始編寫對應的model模型
2.3 編寫models.py
2.4 創建和同步資料庫
3.Admin
3.1 admin
1.django自帶一個admin的後台,只需要簡單的配置就能讓我們快速的使用,這是django的一個強大之處。
2.配置admin.py之前,需要先了解一下admin的用法
需要繼承admin.ModelAdmin
list_display:admin 後台顯示的欄位
search_fields:admin 後台查詢的欄位
fields:允許修改的欄位
actions: 禁用的操作
admin.site.register: 關聯model和admin
3.2 編寫admin
4.djangod的視圖
4.1 Django的視圖
Django有很多的優秀的視圖:
View
DetailView
ListView
FormView
CreateView
DeleteView
UpdateView
我們的blog裡面暫時只用到了ListView和DetailView
4.2 使用dajngo自帶的ListView
v 編寫app的views.py
4.3 使用django自帶的DetailView
4.4 配置app的urls.py
4.5 啟用django
訪問admin後台
填充相關的信息
5.配置相關的模板
5.1 配置app的模板
1.把模板的index.html放到templates裡面
2.模板的css,js,images,fonts,kindeditor放到static裡面
3.模版聲明:此模版來自http://www.lushaozhen.com/
5.2 模版繼承-base.html
1.首先新建一個base.html
聲明模版
第一行:{% load staticfiles %}
2.block
母版html中將一些需要替換的部分用{%block xxx %}。。。{%endblock %}括起來
模版繼承-index.html
模版繼承-detail.html
5.3 前端展示-列表頁面
5.4 前端展示-詳情頁
好了,以上為60分鐘建立一個個人博客的全部流程,希望大家玩得爽。
最後把辛苦的作者小智老師介紹下,馬哥教育Python自動化實戰師傅,原百度時代有限公司福州研發分公司移動雲事業部高級運維開發工程師,現福建某文化發展有限公司技術經理,從事4年的python開發和pythonweb開發,擅長團隊協作,性格開朗,愛分享。
歡迎大家指正和補充,有機會一起寫博客啊!
本文作者:小智
鏈接地址:十分鐘學會用Django快速搭建一個blog
你想更深入了解學習Python知識體系,你可以看一下我們花費了一個多月整理了上百小時的幾百個知識點體系內容:
【超全整理】《Python自動化全能開發從入門到精通》筆記全放送
為了方便大家學習,我建立了一個Python交流群,目前群內已經有2000多個小夥伴,學習寂寞的小夥伴不妨一起來玩~群號:515237230
推薦閱讀:
※一次散點圖數據可視化嘗試
※5分鐘教你學會Django系統錯誤監控
※Python從零開始系列連載(24)——Python特色數據類型(集合)(上)