本文是由馬哥教育金牌講師小智的文字分享《如何快速搭建一個博客》整理而來。css
Django是一個開放源代碼的Web應用框架,由Python寫成。採用了MVC的框架模式,即模型M,視圖V和控制器C。它最初是被開發來用於管理勞倫斯出版集團旗下的一些以新聞內容爲主的網站的,便是CMS(內容管理系統)軟件。並於2005年7月在BSD許可證下發布。這套框架是以比利時的吉普賽爵士吉他手Django Reinhardt來命名的。html
Django是一個基於MVC構造的框架。可是在Django中,控制器接受用戶輸入的部分由框架自行處理,因此Django 裏更關注的是模型(Model)、模板(Template)和視圖(Views),稱爲MTV模式。前端
Django適合快速開發web開發。python
層次mysql |
職責linux |
模型(Model)數據存取層web |
處理與數據相關的全部事務: 如何存取、如何驗證有效性、包含哪些行爲以及數據之間的關係等。sql |
視圖(View)表現層數據庫 |
處理與表相關的決定: 如何在頁面或其餘類型文檔中進行顯示。django |
模板(Template),業務邏輯層 |
存取模型及調取恰當模板的相關邏輯。模型與模板的橋樑。 |
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數據庫
新建一個項目:
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配置
咱們來看下什麼是orm
使用orm有什麼好處
Dajngo的orm-model
1.什麼是ORM?
ORM,即Object-Relational Mapping(對象關係映射),它的做用是在關係型數據庫和業務實體對象之間做一個映射,這樣,咱們在具體的操做業務對象的時候,就不須要再去和複雜的SQL語句打交道,只需簡單的操做對象的屬性和方法。
2.ORM的優缺點是什麼?
優勢:擺脫複雜的SQL操做,適應快速開發;讓數據結構變得簡潔;數據庫遷移成本更低(如從mysql->oracle)
缺點:性能較差、不適用於大型應用;複雜的SQL操做還需經過SQL語句實現
blog的經常使用的數據結構:
文章,分類,評論,註冊
通常來講一個blog至少包含這4個表
咱們今天只寫文章表和分類表
你們能夠先本身想下:
文章表和分類表包含的字段是哪些?
文章和分類是什麼關係?
文章和用戶又是什麼關係?
表之間是否須要外鍵進行關聯?
表之間的關係:
一個用戶能夠發表多篇文章
一個分類裏面也多篇文章
分類和用戶沒有直接的關係
理清這些以後,如今開始編寫對應的model模型
1.django自帶一個admin的後臺,只須要簡單的配置就能讓咱們快速的使用,這是django的一個強大之處。
2.配置admin.py以前,須要先了解一下admin的用法
須要繼承admin.ModelAdmin
list_display:admin 後臺顯示的字段
search_fields:admin 後臺查詢的字段
fields:容許修改的字段
actions: 禁用的操做
admin.site.register: 關聯model和admin
Django有不少的優秀的視圖:
View
DetailView
ListView
FormView
CreateView
DeleteView
UpdateView
咱們的blog裏面暫時只用到了ListView和DetailView
v 編寫app的views.py
訪問admin後臺
填充相關的信息
1.把模板的index.html放到templates裏面
2.模板的css,js,p_w_picpaths,fonts,kindeditor放到static裏面
3.模版聲明:此模版來自http://www.lushaozhen.com/
1.首先新建一個base.html
聲明模版
第一行:{% load staticfiles %}
2.block
母版html中將一些須要替換的部分用{%block xxx %}。。。{%endblock %}括起來
模版繼承-index.html
模版繼承-detail.html
做者:原百度時代有限公司福州研發分公司移動雲事業部高級運維開發工程師,現福建某文化發展有限公司技術經理,從事4年的python開發和pythonweb開發,擅長團隊協做,性格開朗,愛分享。
查看更多內容,請點擊更多