【大咖講堂-174期】十分鐘學會用Django快速搭建一個blog
本文是由馬哥教育金牌講師小智的文字分享《如何快速搭建一個博客》整理而來。
1.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的結構模型
層次
職責
模型(Model)數據存取層
處理與數據相關的所有事務: 如何存取、如何驗證有效性、包含哪些行為以及數據之間的關系等。
視圖(View)表現層
處理與表相關的決定: 如何在頁面或其他類型文檔中進行顯示。
模板(Template),業務邏輯層
存取模型及調取恰當模板的相關邏輯。模型與模板的橋梁。
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.11
pip install mysqlclient
5.安裝mysql數據庫
1.3 Django的簡單配置
新建一個項目:
django-admin startproject blog
在項目里面新建一個app和相關的模版靜態文件:
cd blog
Python manage.py startapp ariclte
mkdir templates
mkdir static
mkdir media
配置相關的設置
cd blog
vim settings.py
vim 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 前端展示-詳情頁

作者:原百度時代有限公司福州研發分公司移動云事業部高級運維開發工程師,現福建某文化發展有限公司技術經理,從事4年的Python開發和Pythonweb開發,擅長團隊協作,性格開朗,愛分享。