Python 初學者想通過 Django 框架寫一個博客,一個月內完成任務,大致的學習路線怎麼安排?
兩年後更新:現在已經在知乎從事 Python 相關的工作。看看當初的自己,真是很幼稚,繼續加油。
- 一個小時看python的語法和基本數據類型: http://woodpecker.org.cn/abyteofpython_cn/chinese/;
- 一個小時看HTTP基礎,知道瀏覽器是怎麼發請求的就行(Google搜「HTTP請求」);
- 一天時間過一遍django docs https://docs.djangoproject.com/en/1.4/ ;
- 同時搭環境讓django應用能跑起來;
- 開著python手冊,開著django手冊,開著google,開始動手寫吧,碰見不會的就翻手冊搜google。
頭兩天比較難過,因為什麼都不會,概念也不清楚,挫敗感很強,寫兩天語法和概念就自然熟悉了,剩下基本就是折騰類庫的事了。
其實難度不在於編程語言(例如 Python),而是你的 web 知識。我在做博客時,覺得最耗時間的是需求、資料庫設計和用戶體驗,這些都是需要很多經驗才能做好的。因此建議你先使用優秀的博客軟體,確定你能在哪些地方做得更好,再去動手。附帶自己的開發過程,也許會有幫助: Doodle博客的開發過程
學完 python 想學 django,正好我最近組織了一個 django 新人學習小組,並開始一邊學習一邊做項目實踐。正好目前進行到第一周,小組正在做一個 Blog 程序,雖然簡單,但是足以帶你進入 django 開發的大門,歡迎 follow 我們,並期待您的建議和意見。簡單介紹一下小組的運作模式:我們在每個周末會開一個小組討論會,討論下一周的開發內容,每個人根據其分配的任務去學習相應的文檔。但是不僅僅是做完自己的工作就完事了,每個人在學習的過程中還要把自己學的東西講給全小組的人聽(主要是寫成一份和自己工作相關的文檔),讓其他的組員都明白你做了什麼,這樣你不僅學到了自己該學的,也學到了其他組員學到的東西。目前我們正在進行第一周的項目,第一周的學習文檔已經出來了,發布在簡書上:Django學習小組出品:一起來做一個簡單的Blog第一周文檔(教程)。我把摘要部分貼出來,感興趣的朋友可以去簡書上閱讀原文。此外歡迎關注我們的 github 組織首頁,所有項目的相關源代碼都會上傳到 github 上。每周更新,但是代碼量不大,確保在新人的接受範圍內,這樣可以讓新手完全跟上我們的學習和開發進度。第一周文檔的摘要:這一周我們小組完成了 Blog 首頁的搭建。
本節是 django blog 項目的開篇,是 django 學習小組的集體學習成果。django學習小組是由我發起的一個促進 django 新手互相學習、互相幫助的組織。小組在一邊學習 django 的同時將一起完成三個項目:
- 一個簡單django blog,用於發布小組每周的學習和開發文檔
- django中國社區,為國內的 django 開發者們提供一個長期維護的 django 社區,聚集全國的 django 開發者到這個社區上來
- django 問答社區, 類似於segmentfault 和 stackoverflow但更加專註(只專註於 django 開發的問題)的問答社區
目前小組正在完成第一個項目,本文即是該項目第一周的相關文檔。
更多的信息請關注我們的 github 組織首頁,本教程項目的相關源代碼也已上傳到 github 上。
同時,你也可以加入我們的郵件列表 django_study@groups.163.com ,隨時關注我們的動態,我們會將每周的詳細開發文檔和代碼通過郵件列表發出。如有任何建議,歡迎提 Issue,歡迎fork,pull request,當然也別忘了 Starred 哦!每周更新,敬請關注
——by Django 學習小組,期待您的建議和意見
23333333,經過了n長時間後,博客終於初步建起來,不過還有一些東西還要完善,心累。我只是想自學一下python玩一下,結果坑到了現在。簡要介紹一下搭建的基本過程。
1 你要有個伺服器,騰訊雲學生1元一月; 域名也可以在騰訊雲用優惠卷買;
2 國內的域名使用需要備案,備案時間3星期左右。
3 自學python,提供個人認為比較好的兩個教程 (1)實驗樓 https://www.shiyanlou.com/courses/214 (2)廖雪峰python教程 http://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000 至於python學2還是3版本的,自行知乎。
4 學習html和css教程,推薦兩個教程 (1)實驗樓https://www.shiyanlou.com/courses/19 (2)w3school
5 學完python和前端,就可以後端了,你可以選擇自己寫框架,比如flask,我就選擇偷懶用的現成的django。 強烈推薦django教程: (1)官方中文文檔http://python.usyiyi.cn/django/index.html (2)別人寫的博客代碼,我也就是按這個敲得,不過一些代碼還是不是太懂。http://www.jianshu.com/p/3bf9fb2a7e31
6 伺服器部署,先把你的域名解析,然後可以參見這個教程,親測有效: http://www.jianshu.com/p/b40a4a12fff1
建議先弄清楚自己的目的:如果是為了學習,那麼就好好學些python,然後學習http相關知識,django是開發時方便,但是對於學習web開發知識來說,並不是太合適;如果只是為了建個人博客,直接用wordpress,比自己寫的好太多.
用django寫後台很方便,很快就能搭起來,但我覺得博客關鍵的是前端的展示,除了學django還得學點前端的東西
正在走樓主的道路。。
前幾天剛是社群的小夥伴寫了個博客,Django寫博客是很多學習Python人必經之路,今天我特別整理了一個建博客實錄出來希望可以是Django學習之路的一個好啟發,希望對大家有幫助。
——————————
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.1Django的結構模型
1.2Django相關依賴的環境和安裝
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.3Django的簡單配置
新建一個項目:
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配置
2Django操作資料庫
2.1Django裡面主要使用orm來操作資料庫
我們來看下什麼是orm
使用orm有什麼好處
Dajngo的orm-model
1.什麼是ORM?
ORM,即Object-Relational Mapping(對象關係映射),它的作用是在關係型資料庫和業務實體對象之間作一個映射,這樣,我們在具體的操作業務對象的時候,就不需要再去和複雜的SQL語句打交道,只需簡單的操作對象的屬性和方法。
2.ORM的優缺點是什麼?
優點:擺脫複雜的SQL操作,適應快速開發;讓數據結構變得簡潔;資料庫遷移成本更低(如從mysql-&>oracle)
缺點:性能較差、不適用於大型應用;複雜的SQL操作還需通過SQL語句實現
2.2Blog的數據結構
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.1Django的視圖
Django有很多的優秀的視圖:
View
DetailView
ListView
FormView
CreateView
DeleteView
UpdateView
我們的blog裡面暫時只用到了ListView和DetailView
4.2使用dajngo自帶的ListView
? 編寫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開發,擅長團隊協作,性格開朗,愛分享。
原文地址:【大咖講堂-174期】十分鐘學會用Django快速搭建一個blog |
————————
歡迎大家指正和補充。
你想更深入了解學習Python知識體系,你可以看一下我們花費了一個多月整理了上百小時的幾百個知識點體系內容:
【超全整理】《Python自動化全能開發從入門到精通》筆記全放送
如果有HTTP,HTML,CSS,JS基礎,看兩樣東西即可1、python入門教材一本,推薦 《learning python》2、Django教材,直接先照官方的那4個入門step做一遍,接下去,需要那部分就看哪部分的文檔,但是推薦先看比較完整再實際動手,因為可能你有疑問或覺得自己已經會的地方,其實文檔已經提到或有更好的解決方案。
問題比較老了,發個教程給後面的同學參考。如果已經有Python和Django基礎,可以直接看這個Python - Django 搭建簡易博客 手把手教你用Django 開發一個簡單的博客,涉及 Django Web開發,MVC,Template等。如果對Python或Django不熟悉,按下面路線走。Python - Python快速教程Python - Python Django Web框架
提問者應該親自回答下問題~~
你真的是想寫一個博客,還是真的想學習Django,或者是你只是真的想學python。
這個問題真的很重要。你的第一句話就甩出三個令人頭疼的問題。
但是!
說到底就是學習的問題。
學django這類框架,就是要能熟練的使用,不僅是熟練使用,甚至你還要能用正確的姿勢來實現功能,比如博客系統。
web應用程序都是牽扯很多東西的。
語言本身,server容器,框架,數據怎麼存,前端怎麼搞。。。
深入到每個細節都夠自己搞一陣子的。
很多時候自學可以學到什麼呢?
你可以學會語法,你可以學會原理。
但是學不會最佳實踐。
曾經我學java的時候,覺得自己也可以寫個什麼東西出來玩玩,後來,我的天,too young.
基本的過程我都會,當我寫第一個頁面的時候,我覺得還行。寫道第四個頁面彼此要有很多聯繫和動作的時候,我蒙逼了。。。我自己設計的這些東西根本cover不了自己的需求。代碼行數爆增,邏輯越來越複雜。。
後來想辦法搞到了一些別人的源碼,發現自己根本看不懂,但那就是最佳實踐。一個功能,寥寥兩個類結束了,什麼許可權鑒別,這些根本就沒有我搞的那麼羅嗦。
對於一種需求,一種功能,業內的一線工作人員是已經有成熟的,而且合理的解決方案的,並不是閉門造車就能造的好的。也不是從幾篇文檔中就能學到的,文檔中只是告訴你基本的東西,至於這個東西怎麼用最科學,還是要自己摸索。
但凡這類經驗的問題,能用最快的方法獲得就用最快的方法獲得。時間不是該浪費在這裡的。
想一下,你花3個月把這個博客寫出來了。疲憊不堪。而且只是勉強能用,擴展性還不好。
別人找個師傅帶著,3周寫完了。模塊清晰,功能完善,可擴展,可維護。
剩餘的兩個多月,就可以去找個工資高很多的工作了,或者有時間去深研原理。
不要看別人看看文檔就寫出來精美的東西,那背後是多年經驗積累成的,新手是不行的。
找個靠譜的人教,人生才不會苦短,有時間不如去睡覺啦,做程序員那麼辛苦。
推薦一個微課,一線工作經驗,而且有大批助教全天候給你回答各種問題(我覺得這一點非常重要,三言兩語道破問題的核心,自己曾經要研究幾個小時才能搞懂。。。我就是一個助教)
九章演算法 - Web全棧工程師入門微課——Django 從0到1
一天真的沒有幾個幾個小時去研究那些問題。。。
我說,如果僅僅是為了寫博客你用WordPress就行。Python初學者,一上來就django搞博客。如果真的像學好,倒不如實打實的自己用Python,不藉助框架寫個。
恩。兩年後更新……目前和樓主也有相同的問題了…
廣告下自己使用Django寫的一個博客項目.
Github:
https://github.com/liangliangyy/DjangoBlog
線上地址:
https://www.lylinux.net/
主要功能:
- 文章,頁面,分類目錄,標籤的添加,刪除,編輯等。文章及頁面支持Markdown,支持代碼高亮。
- 支持文章全文搜索。
- 完整的評論功能,包括發表回複評論,以及評論的郵件提醒,支持Markdown。
- 側邊欄功能,最新文章,最多閱讀,標籤雲等。
- 支持Oauth登陸,現已有Google,GitHub,微博登錄。
- 支持Memcache緩存,支持緩存自動刷新。
- 簡單的SEO功能,新建文章等會自動通知Google和百度。
- 集成了簡單的圖床功能。
- 集成django-compressor,自動壓縮css,js。
- 基於python3,支持Django多版本。Django的1.8,1.9,1.10,1.11均測試通過。
- 網站異常郵件提醒,若有未捕捉到的異常會自動發送提醒郵件。
可能可以給樓主一些參照等.
具體請參見Github的Readme.有較為詳細的介紹.
歡迎star,fork,或者提交issue~~~
參考Udacity CS253這門公開課:Classroom - Udacity,雖然框架用的是webapp2,但可以作為基礎。