現在做python web開發一個小項目,無從下手,望各位老師和同學給引導一下,提提意見,謝謝!?
有了一些python和前端的一些知識積累,熟悉了django框架,現在開始做web開發的小項目,是感覺無從下手,沒知道從哪開始,也不知道做什麼,希望各位老師,同學給我引導一下?謝謝!
謝謝邀請!
給您看一下我們馬哥Python社群小夥伴基於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 |
————————
歡迎大家指正和補充。
1、首先照著官方網站這個Tutorials 擼一遍。
Getting started | Django documentation | Django
2、看這本書,死磕它+django文檔+ 搜索+GitHub上找其他人開發的例子。
我最近也一直在學習django
應該還算不上熟悉
我學習django的過程
基本上就是明白了基本用法之後就開始嘗試寫一個自己的項目,遇到想要的功能卻實現不了,就去查閱一下相關的資料,補補課最近一直在做的一個項目:django-sspanel
有興趣可以一起開發,就當練手也是不錯滴https://github.com/Ehco1996/django-sspanelDjango如何開發,樓上幾位寫的挺多的。網上資源和官方文檔也挺多,這裡就不再重複了。那麼這裡就說說怎麼下手。這裡都是一些比較簡單的流程,僅供參考。真正工作上的流程會更加規範。
不知道這個項目是出於個人興趣還是工作性質。如果是個人興趣,從感興趣的領域入手。或者跟著視頻擼一遍代碼,這當然也是極好有幫助的。如果是工作性質,或者是想自己開發後期可以部署的就可以做下如下規劃。
- 先了解自己的技術棧。自己目前會什麼?Django的熟練度有多少?資料庫的技能如何?前端JS會哪些庫?UI庫又有哪些可以選擇的?等等問題。總之,了解自己能做什麼是很重要的。
- 第二步就是開始設計的項目。資料庫的建模,web項目的建模。我的項目需要一些什麼功能,前端後端如何交互的?數據存儲讀取和網頁渲染的邏輯和順序如何。總之,開始建模畫圖,UML,動態圖等等,這是了解和簡歷你項目的第一步。不要求完完全全,但可以讓自己對自己的項目了解,我要做什麼?我接下來做什麼?一個成功的項目離不開好的設計。
- 第三步,完成了項目的初步設計。來看看你不知道什麼?根據你的設計來看看你不知道什麼,需要學什麼新的知識。例如需不需要學新的庫?有文本區域需要用富文本編輯器的庫嘛?JS需要學Jquery的庫嘛?CSS需要學bootstrap嘛?django還有哪些庫可以方便我開發過程的?我的項目是否要部署?如果要部署是否需要看下AWS等伺服器配置?NGINX如何設置?需要用Docker嘛?如果涉及到部署,沒有運維的幫助這些也都是需要自己邊學邊做的。總之,看到了這麼多先不要害怕,哪個程序員沒有踩過這一個個的坑。
- 知道了自己要做什麼了以後,就可以開始規劃項目的製作流程了。從先做哪個功能開始?慢慢細分。開發程序有個很重要的點,叫做divide and conquer,把一個問題分解成一個個小問題,然後各個擊破。例如我要做個用戶登入的功能,我根據功能頁面分解成三塊部分:註冊,登入,登出。然後繼續細分前端後端任務小部分。後端部分可以分為用戶資料庫的創建,註冊的表格,註冊的view,註冊的url等。前端又可以分為,html渲染,form的顯示和POST,頁面的跳轉,頁面的CSS和JS等等。當你在第二部建模時候有了一個完善的模型和功能概念,這裡的項目規劃製作流程的設定就變得更加清晰了。在這裡推薦一個免費的項目管理工具trello Trello 可以幫助你規劃和可視化自己的項目流程,有中文版。
- 開始碼代碼,這裡沒有好說的了。遵循你自己定製的流程,一個個任務攻克。看著你的任務表上任務一個個完成其實是很有成就感的事情。
- 寫測試,也沒什麼好說的。每完成一個任務後做下測試,發現bug解決bug是不可避免的事情。
- 遇到問題。可以自己先看下文檔,網上提問,英語好去stack overflow查,好多Django的問題,但凡初學者會碰到的問題上面基本都會有。
- 改進自己的項目。在製作過程中很容易發現在前期設計建模時候忽略的點,這時候就是不斷完善你的項目結構的時候。同時也會發現一些需要學的新的內容,一變學習一變開發會讓你在之後受益匪淺。
- 優化你的代碼和注釋。一個好的程序員的代碼的乾淨的易懂的。在完成一個任務後,或開始一個任務前想想,我的代碼是否簡潔明了,是否有相同的重複的代碼可以用循環利用?注釋是否清晰易讀?
- 有待補充。
你可以看看 @楊學光 的博客教程
本人目前在學習flask ,主要資料是狗書。學習途中穿插html ,css,資料庫和git操作。目前已經自學到第九章了。註冊、登錄、密碼更改、郵件驗證等已經實現。個人建議,熟悉Git,再跟隨書本、作者放在github上面的代碼學習,在學習途中補充相關知識。共勉。
不知道你是科班還是其他專業轉行的,你也沒有說python的程度,個人建議python開發還是從flask開始學,django有點太重了。但是如果你是科班,或者基礎比較好那也可以從Django開始。全看你自己的程度了。決定好路線之後就從擼官方文檔開始
百度一下(這個可能知乎不正確),找一下py+diango的demo,先從工程結構上看,模仿著做一下。等你熟悉了models,views,再看看配置項的setting,urls,db,再了解一下模板的寫法,上手寫個demo還是沒問題的,加油吧。IDE推薦PyCharm。
推薦閱讀: