ONE——Django項目前期準備(Django現狀;開發流程;需求分析;項目架構) | Git學習(重點:本地倉庫操作;遠程倉庫【本人使用碼雲】;分支管理)

第一部分:項目前期準備

一、Django 現狀

1、Django開發前景

1.1 Django的厲害之處

  • 在python中,與web開發環境相關的包有13045個
  • django就佔了9091個,大約70%
  • 在python中,活躍的web框架多達54個,其中最活躍的有,Django,Flask,Pyramid,Zope
  • 最受歡迎的就是Django,沒有之一
  • 超過5263箇中大型網站使用Django開發

1.2 哪些公司在使用Django?

  • 國內:豆瓣、知乎
  • 國外:Instagram、Mozilla、Pinterest、Disqus、National Geographic、NASA

2、版本

  • 1.11(2017年4月發佈,支持python2.7,在2020全面推行python3之後,將不再提供服務)
  • 2.0-2.1(2.0版本,2017年12月發佈,只支持python3,將長期支持,向下兼容)
  • 2.0主要在一下方面做了改進:
    • 簡化url路由語法
    • 更友好的admin站點
    • auth支持更高強度的加密算法(PBKDF2)
    • runserver支持HTTP 1.1

在這裏插入圖片描述

二、開發流程

本項目,我們會盡量模擬真實web開發場景來開發項目,讓我們體驗在開發團隊中工作一般的快感!

開發流程圖如下圖所示:

在這裏插入圖片描述

三、需求分析

1、網站類型

本項目主要完成一個個人新聞博客類網站,用於知識分享,交友互動等

2、主頁模塊

  • 輪播圖
  • 熱門文章推薦
  • 文章標籤、文章列表(可加載更多)
  • 左側廣告展示
  • 個人聯繫方式

3、用戶模塊

  • 註冊
    • 短信驗證碼(雲通信平臺)
    • 圖片驗證碼
  • 登錄
    • 用戶名和手機號登錄
    • 第三方登錄(可能會拓展QQ、微信登錄等)
  • 個人中心頁

4、在線視頻模塊

實現在線播放視頻功能,用於福利課視頻展示等。

5、文件下載模塊

實現相關資源共享,如課件筆記等。

6、搜索模塊

使用流行的elasticsearch搜索引擎框架,實現網站資源快速搜索定位功能。

7、後臺管理模塊

  • 文章標籤管理
  • 文章發佈
  • 文章管理
  • 熱門文章管理
  • 主頁輪播圖管理
  • 課程發佈
  • 文檔上傳
  • 賬號管理

四、項目架構

1、網站開發模式

前後端部分分離的開發模式

拓展:網站開發模式兩種方式!

(1)前後端不分離:

請求的數據交互如下圖:
在這裏插入圖片描述

(2)前後端分離:

在前後端分離的應用模式中,我們通常將後端開發的每個視圖都稱爲一個接口,或者API,前端通過訪問接口來對數據進行增刪改查。

對應的數據交互如下圖 :

在這裏插入圖片描述

2、前端技術

html + css + js + jquery(ajax)

3、後端技術

Django2.1 + Django restframework(一種設計風格/規範) + mysql + redis + celery(可能會拓展) + elaticsearch + nginx + uwsgi

在這裏插入圖片描述


第二部分:Git

一、爲什麼要使用Git?

1.傳統文檔管理

在這裏插入圖片描述

在我們寫畢業論文時可能會遇到,多次修改之後的論文命名方式:

論文_改.doc、論文_改改.doc、論文_改改改.doc、論文_改改改改.doc、論文_改改改改再改.doc、論文_改改改改再改TM不改了.doc

2.源代碼管理的好處

  • 方便多人協同開發
  • 方便版本控制

3.Git的誕生

在這裏插入圖片描述

  • 作者Linux之父:Linus Torvalds
  • git開發目的:爲了輔助Linux內核的開發
  • 是Linus被逼無奈,花了2個星期用c寫的
  • 2008年,GitHub網站上線,爲開源項目免費提供Git存儲,無數開源項目開始遷移至GitHub
  • Git迅速成爲最流行的分佈式版本控制系統(沒有之一)

二、Git結構

Git是分佈式管理系統。服務端和客戶端都有版本控制功能,都能進行代碼的提交,合併,修改

圖一
在這裏插入圖片描述

圖二
在這裏插入圖片描述

三、本地倉庫操作

1.安裝git

2.查看是否安裝成功

git --version

在這裏插入圖片描述

3.創建本地倉庫

  1. 創建一個文件夾用於存放項目文件(myporject)

  2. 新建本地倉庫
    cd ~/myproject/
    # 初始化
    git init
    # 會創建一個.git的隱藏文件,關於版本控制的文件都存放在這裏,絕對不要改動
    在這裏插入圖片描述

  3. 配置個人信息

       # 配置全局信息(怎樣設置無所謂,因爲不需要使用;一臺電腦設置一下即可!)
       git config --global user.name 'cool'
       git config --global user.email '[email protected]'
       # 配置信息會保存在家目錄下
       ~/.gitconfig

在這裏插入圖片描述

       # 配置本項目個人信息(注意:一定要認真設置,和我們遠程提交的終端設置的要一模一樣,不然會提交失敗;而且每搞一個項目都要配置一下哦!比如:咱後面會上傳到碼雲到!)
       git config user.name 'cool2'
       git config user.email '[email protected]'
       # 配置信息存儲在當前目錄下的.git/config下

在這裏插入圖片描述

4.添加文件

創建好了本地倉庫,就準備開始開發了。

在項目文件加下創建readme.txt文件,輸入以下內容。(注意:現在這個txt文件處於工作區中)

這是一個git學習的項目。

使用命令git status可以發現,此txt文件標紅,意思就是我們需要使用git add命令將其提交:
在這裏插入圖片描述

將文件添加到代碼庫分兩步

  1. 先添加到暫存區
    git add readme.txt
    在這裏插入圖片描述

  2. 提交到倉庫
    git commit -m ‘這是一個文本文件’

在這裏插入圖片描述
git commit命令的-m參數後輸入的內容是提交說明。命令執行成功後顯示幾個文件被改動,加了多少行。每提交一次就會生成一個版本。

按照這個操作流程,修改readme.txt內容如下

這是一個git學習的項目。
千里之行始於腳下。

git add . 可以一次性把當前目錄中所有有改動的文件都添加到暫存區。

在這裏插入圖片描述

在這裏插入圖片描述在這裏插入圖片描述

小插曲:因爲編碼方式的不同可能會出現亂碼。
解決方法:

打開你的終端,依次輸入以下命令:
$ git config --global core.quotepath false # 設置 git status utf-8編碼

$ git config --global gui.encoding utf-8 # 設置Git GUI界面utf-8編碼

$ git config --global i18n.commit.encoding utf-8 #設置commit信息utf-8編碼

$ git config --global i18n.logoutputencoding utf-8 # 設置輸出 log utf-8 編碼


5.歷史版本

辛勤的工作一段時候,我們提交了很多次了,有很多的版本,怎麼查看這些提交記錄呢?

git log       (只能查看歷史版本)

git reflog	(可以查看所有版本!)

git reflog可以查看所有分支的所有操作記錄(包含已刪除的commit記錄)。

git log不能查看已刪除的commit記錄。
在這裏插入圖片描述

6.版本回退

  1. git reset --hard HEAD^
    • HEAD表示當前最新版本
    • HEAD^表示當前最新版本的前一個版本
    • HEAD^^表示當前最新版本的前兩個版本,以此類推
    • HEAD~1表示當前最新版本的前一個版本
    • HEAD~8表示當前最新版本的前8個版本,以此類推
  2. git reset --hard 版本號
    當版本非常多時選擇這種方法。版本號就是每次commit生成的hash值,只用取前幾位數。

7.撤銷修改

運行git status命令會顯示當前工作區,暫存區,倉庫的狀態。當工作區的所有代碼都提交到倉庫,並和倉庫保持一致時會顯示:

On branch master
nothing to commit, working tree clean

一旦有修改,git status命令會顯示改動的文件,以及你應該怎麼提交這些修改。

  1. 撤銷工作區代碼
    git checkout 文件名
    修改文件後沒有執行add,運行此命令可以撤銷所有修改,一旦撤銷沒有後悔藥哦,在確定拋棄所有修改時使用。
  2. 撤銷暫存區的代碼
    # 第一步:將暫存區代碼撤銷到工作區
    git reset HEAD 文件名
    # 第二步:撤銷工作區代碼
    git checkout 文件名

8.對比文件

  1. 對比本地倉庫與工作區
    git diff HEAD – 文件名
  2. 對比本地倉庫個版本代碼
    git diff HEAD HEAD^ – 文件名

9.文件刪除

  1. 刪除沒有添加進版本庫中的工作區中的文件
    # 直接刪除不用做任何操作
  2. 刪除已添加進工作區但沒有提交的文件
    # 1.先撤回工作區
    git reset HEAD 文件名
    # 2.直接刪除
    rm 文件名
  3. 已提交到版本庫
    # 1.刪除文件
    rm 文件名
    # 2.運行 git add .
    git add .
    # 3.提交
    git commit -m ‘delete some file’

四、遠程倉庫

要實現多人協作分工,就需要git服務端。對於我們學習來說,自己去搭建一個服務端太費事,再說你寫的代碼也不是啥國家戰略祕密,不用擔心給別人看到了。前文提到了github網站,它就是一個git服務端,最重要的是不要錢,很多開源項目都託管在它的上面了。但是它的服務器在境外,國內訪問比較緩慢,好消息是,國內也成立了一個網站叫碼雲不是馬雲,學習git可以通過這個網站,很多國內項目也開始託管在碼雲上了。

不管是是使用github還是使用碼雲,步驟是差不多的,區別是github是全英文的慢一點。這裏以碼云爲例。

首先你需要註冊一個碼雲的賬戶,然後創建一個空的倉庫。這個在碼雲上有教程大家自行操作。

創建好倉庫後,你的倉庫會有兩個地址,一個是https,一個是ssh。因爲使用https需要輸入用戶名和密碼,推薦使用ssh的方式。要使用ssh你需要設置你賬戶的ssh公鑰。公鑰管理

要把本地倉庫和遠程倉庫聯繫起來有兩種方式:

1.添加遠程倉庫

  1. 克隆
    遠程倉庫裏已經存在項目文件,你買了臺新電腦,需要將項目從遠程倉庫clone(克隆)到本地進行工作。
    # 首先cd到你要存放項目的目錄
    cd ~/projects
    # 然後運行下面的命令
    git clone [email protected]:用戶個性地址/name.git
  2. 本地初始化一個倉庫,設置遠程倉庫地址後再做push
    和第一種方式的區別在於先創建倉庫
    git init # 創建倉庫
    git remote add origin [email protected]:用戶個性地址/name.git

2.推送到遠程倉庫

當本地工作完成,需要將代碼推送到遠程倉庫,使用git push命令

git push origin master

3.從遠程倉庫拉取更新到本地倉庫

你的同事和你協同開發,他工作的那部分內容完成了,並且已經推送到遠程倉庫,你接下來的工作需要依賴他的那部分代碼,那麼你需要將遠程倉庫代碼拉取到本地倉庫,使用git pull命令

git pull origin master

實踐:使用碼雲,在遠程中新建倉庫後按如下命令在本地項目文件夾下Git操作如下命令即可!

在這裏插入圖片描述
在這裏插入圖片描述

刷新界面可發現已經將本地代碼推送到了遠程倉庫:

在這裏插入圖片描述

五、分支管理

正常的開發項目中都是多人協作,每個人的任務一般不會一天就完成,如果把沒有完成的代碼提交到遠程倉庫會影響被人工作。git提供了分支的功能就不用擔心了,可以創建一個自己的分支,在上面幹活,想提交就提交,等到工作完成再一次性合併到原來的分支。

1.創建分支

新建git倉庫時會默認創建一個分支master,它叫主分支。一般情況我們不會直接在主分支上幹活,它主要用來發布版本。

創建一個開發分支develop

git branch develop

再切換到develop分支

git checkout develop
顯示如下:
Switched to branch 'develop'

這兩條命令也可以通過一條命令來實現

git checkout -b develop

-b參數表示創建並切換。

使用git branch命令查看當前分支(*表示正在使用的分支)

git branch
* develop
  master

2.合併分支

創建好develop分支後,你開始幹活,完成上級領導交給你的任務,根據用戶的手機殼顏色更換app主題,5分鐘之後開發完畢,提交:

$ git add change_theme.py

$ git commit -m 'complete change theme'

經過測試功能完成,現在我們要合併到master分支

首先切換到master

$ git checkout master
Switched to branch 'master'

查看工作區,你會發現剛纔開發的功能文件沒有了,不要驚慌,因爲那個提交是在develop分支上,現在我們把develop分支的工作合併到master分支上:

$ git merge develop

Updating 7173db6..5b83e32
Fast-forward
 change_theme.py | 0
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 change_theme.py

git merge命令用於合併指定分支到當前分支。合併後,在查看文件夾發現,change_theme.py文件又回來了。

3.刪除分支

合併完之後你也可以刪除掉develop分支:

$ git branch -d develop
Deleted branch develop (was 5b83e32).

$ git branch
* master
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章