Blog Cover Image

Inspire you to have New thinking, Walk out your unique Road.

有的時候,你無意間遇到的一些故事,會激發你的靈感,改變你的想法,接下來你會用與之前全然不同的觀念去創造屬於你獨特的故事。

Sign @MinaYu.

終端機與Django,python 安裝與打開一個project篇

Posted on

2019/05/13

更新的安裝python環境方法有新文章可以做參考: 如何在MAC安裝PYTHON環境,教你備妥開發PYTHON的合格環境 | 新電腦重新安裝


2018/10/27

點開這篇文,我也是會心一笑

我不知道點進來看得朋友們是因為我的標題,還是我裡面的小故事

不過經過了好久,我重新來翻修我的文章

這篇文章是我還在研究所學程式的幼幼時期所亂寫的文章

目前現在出來工作,開始從Junior 後端工程師開始做起

不過我們公司用的是Flask,我沒有在用Django

本篇就直接從本來的發牢騷家家酒文,晉升為初階教學文

先前寫的文章內容將保留在下面

使用工具: Mac, Python 3, Terminal

從開發程式開始,我就堅持用mac,雖然在研究所時期被學弟跟指導老師唾棄嘲笑過,因為學校都用windows,導致我自己用mac水土不服,所有跟mac相關的系統問題都要自己研究

目前用mac系統開發的工程師變多了,感到欣慰QQ

mac系統很像Linux, 所以直接學Linux也可以


對於一個python新手,安裝環境會卡很久, 尤其是在你甚麼都搞不懂的情況下

我自己剛進公司,剛買一部電腦,裝環境時也是很頭痛

你可以選擇用

  • Anaconda

https://www.anaconda.com/

這個好處就是套裝, 一套走天下

壞處就是你會沒經歷過混沌亂搞時期,沒有體會神經元斷開重接的樂趣

自然會不知道如果沒有Anaconda時,你該怎麼架好你的環境

  • 自己手動裝

https://wsvincent.com/install-python3-mac/

我想教學都寫得很清楚

我自己買新電腦是用Anaconda裝

現在就開始吧,我就直接講第二個自己手動裝了

打開你的終端機 Terminal,你可以在mac 應用軟體內找到

terminal

一開始,你的目錄會在User/ (應該會是你取的名字)

也就是你的Home, 記好這個位子會是Home, 因為以後你找英文網站,他會請你前往你的Home就是這一層

你可以使用

$ ls

來查看這一層目錄有哪些檔案跟資料夾

通常如果你裝Anaconda, 他會幫你裝在這一層

安裝 Xcode and Homebrew

安裝Python,我們會需要Mac Xcode的套件管理Homebrew

(只要複製$ 以後的指令到終端機即可)

$ xcode-select --install




$ ruby -e “$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

確認您的Homebrew安裝好了

$ brew doctor
Your system is ready to brew.

安裝 Python 3

$ brew install python 3

確認python 3 安裝好了

$ python3 --version
Python 3.7.0

打python 3 就可以直接用python來編譯了

$ python3
...
...
Type "help", "copyright", "credits" or "license" for more information.
>>>

使用exit() 離開 python 3 環境

exit()

安裝PIP

這個非常重要

pip指令是python 的套件安裝與套件管理工具

使用python後,你將會有極大部分機率常常使用pip

python本身環境沒有pip,除非有方法可以開虛擬環境(開了一個虛擬環境 pip會幫你安裝好!)

sudo easy_install pip

**** 不過好像建立一個虛擬環境,環境就會幫你把pip安裝好了,所以也不用擔心,要真的不行再回頭來安裝pip吧****


建立虛擬環境

當我們要執行一個新的project或軟體開發時,我們會安裝一個虛擬的環境來做開發

通常會在Home目錄下開一個新的虛擬環境

但我個人喜好是在桌面 (所以一進公司就被咱偉大的Senior 前端唸了一番哈哈xD)

後來也漸漸的在我的Home目錄底下開一個project資料夾在裡面放我的開發虛擬環境

虛擬環境就是你在裡面亂裝甚麼,怎麼搞破壞,只要把環境的資料夾砍掉,也不會影響到電腦

缺點就是…..

萬一你每次打開電腦回來開發時,忘了run虛擬環境,你還是會把一堆雜七雜八的套件不小心安裝在你的電腦xDDD

手動開啟虛擬環境

$ ls

確保你在你在Home裡

資料夾應該會有

Desktop, Download, Application..

如果你安裝Anaconda, 他也會在這一層

如果你使用 conda 指令來開啟專案

專案資料夾會在anaconda裡

開啟一個新的資料夾,你可以取名為project,也可以取為任何你想要取名的名字

$ mkdir project

然後切換到裡面

$ cd project

在這裡面你會放一堆你開發的專案,接著我們就開始,開啟一個虛擬環境

通常你會再創一個資料夾,就是你的專案名字

$ mkdir mysite

切換進去你的專案資料夾

$ cd mysite

所以這個時候你應該會在這

User
    Desktop
    Download
    Application
    project
        mysite <<

這個指令是,在你目前的位置裝一個虛擬環境

$ python3 -m venv .

這時候你的mysite 資料夾裡應該會多出一些檔案

bin
lib
...

接著將虛擬環境run起

$ source bin/activate
(mysite)$

這個時候你在環境內亂搞,才不會影響到電腦

然後離開你的虛擬環境

(mysite) $ deactivate
$

****為什麼我在這要用mysite,其實大部分教學的虛擬環境都會是

ooo_venv/ xxx_env 為你的虛擬環境名稱,是為了方便初學者釐清觀念

不過我們做專案跟工作時,我們是會先用Git 把GitHub上的專案Clone下來

然後在切換進專案資料夾內安裝虛擬環境

這也是我開始工作後才發現原來工作上的前輩們都是這樣

假設project 叫 food_web

我們會切換進 food_web內,然後在run

$ python3 -m venv .

****

用Anaconda的人會使用conda指令開一個虛擬環境

因為conda可以直接指定版本要2還是3

對於我這個之後才學3的人,前陣子不清不楚

最後才學會開環境2跟環境3的人,經歷了一段渾沌練功時期qq


安裝Django

這部分就推薦

https://djangogirlstaipei.gitbooks.io/django-girls-taipei-tutorial/django/installation.html

我的程式幼幼班也是參考他的QQ

現在我們已經在虛擬環境內了.

(mysite)$

那就開始照網站的內容下指令吧!!

使用我先前說的,你一定會大量使用他的python套件pip來下載django

(mysite)$pip install "django<1.9"

(我是不知道為什麼網站要侷限django < 1.9

我自己的話是不會做這種事,當然後果可能就是,萬一你用1.9以上的版本,有其他問題要自己django文件看內容qq

Installing collected packages: django
Successfully installed django-1.8.6

代表成功安裝好了

接著,就開始開一個新的django app吧!

<code>(mysite)$ django-admin.py startproject nuuk</code>

我承認這是我亂搞xD,因為我真的不知道要取甚麼名字對於專案內容

nuuk是格陵蘭的城鎮,你可以取任何業主或者你自己想叫的名字

目錄會長這樣

nuuk/
─ manage.py
└── nuuk/
    ├── __init__.py
    ├── settings.py
    ├── urls.py
    └── wsgi.py

接著下指令將伺服器run起來

在有manage.py 檔案那一層

$python manage.py runserver
...
...
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.

這個就是所謂在本地端或者local端做測試跟開發

打開你的估狗輸入

http://127.0.0.1:8000/

就可以看到有頁面show出來

當然我們這些人會使用別的指令xD,我個人最愛怪怪的數字

$python manage.py runserver 0.0.0.0:9912

http://127.0.0.1:9912/

80 port才是對外開放,除了避開一些特定數字

不然其他數字port都可以取,不過僅限開發跟測試用

正式對外開放還是80 port 居多


Django application(app)

最後建立app

Django 是 MVC/MVT架構,所以內容編寫會在View.py 與 Model.py居多

$ python manage.py startapp trips

我就直接照網站上key了

一樣你可以依照你開發的功能去取app名字

然後記得在_settings.py 加上你新安裝的app_

# nuuk/settings.py

...

# Application definition

INSTALLED_APPS = (
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'trips',
)

MVC / MVT 的

View.py 跟 Model.py

會在你的新app裡(trips)

所以你可以在你的nuuk專案裡開很多app

然後在各種不同的import

至於C/T 的 Template

大家就去估狗啦,基本上會需要手動建立Template

位置應該是app的上一層

Template裡面會放不同的html/css/js

之後探索的樂趣就交給各位啦

多碰壁,多磨練,多練習

雖然自己才20幾歲

但赫然發現每一個專家,每一個技術很厲害的人
一定都是透過不斷的磨練,碰壁及練習,最終才成為專家或者厲害的人

祝福學程式愉快

感謝大家欣賞本文!


<strong>2016/07/26</strong>

今天好歹也動腦整天了

昨天沒有睡好因為昨天晚上看到我的四隻蝦蝦都跑在水草上呼(ㄘㄜˋ)吸(ㄊㄤˇ)。

今天早上就翻肚三隻剩下一隻,是說我昨天才去水族館買的馬上就給我掛彩。

也因為自己越來越忙,七月真的是一個休息在準備下階段衝刺的月份。

而我從三月就整天嚷嚷要準備托福到現在終於要在這週六去報八月的班。

還好我的分類取作我的藻毬時代,不然蝦死光了我要怎麼繼續發文?


五月開始於教授身邊學習程式語言,今天的我終於接觸到所謂的終端機。

也就是黑視窗,以往我看到人家在用黑視窗的時候覺得打著好難又看不懂的語言指令。

這,我不會學到對吧?這看起來真心難!

但是,我去了解他後反而對他改觀,窩操!!!!終端機真是一個好玩的東西。

其實我剛開始還覺得我買mac是不是買錯了?啊工程師都用mac!

因為我覺得,每次只要有什麼事情我就得找相容性的軟體。

比方說學弟們都用notepad++去寫網站他還可以跟ftp相連

但mac好像沒有notepad++

簡直哭得一蹋糊塗,簡直崩潰簡直………我碗都敲破了

好了不要理我了,經過今天整天動腦時刻連剛剛打一場LOL都能買兩雙鞋你就知道我不正常了

但到最後,就算使用的很痛苦我也扔然覺得每一次都是一種學習,學習新系統!

然後,本來以為終端機是個很可怕的東西。

結果接觸到了以後發現哇哩咧整個超有趣的辣!!!!!!

而且mac終端機可以改顏色,一整個五顏六色繽紛滿地

超興奮,又不知道找誰講噗!!!

終端機就是一個TMD超可愛又有趣的東西!!!!又方便!!!!

好啦,其實源自於我門老師要我把我研究將近一個月的php砍掉用python+django寫

虧我php都快要熟了,臨門一腳給我換別的程式語法!!!

總之,我跟著某個知名django教學外國網站去安裝環境。

然後卻發現怎麼弄都安裝不好。

剛開始python裝下去了,我的finder裡都有python了,然後要用什麼pip裝,又要用虛擬環境去裝。

害我把python刪了又裝,刪了再裝。

終於在今天早上11點的時候看到一個外國人做的安裝教學youtube

簡直太神啦!!!!!我就一步一步做然後就真的大概了解他在幹麻,成功了!!!!

基本上從安裝虛擬環境跟用pip裝django都是在終端機使用,你就可以看到終端機在那邊安裝東西跑東西

我就覺得TMD超Magic的有沒有

怎麼在一個小視窗裡跑啊跑又跳來跳去的跳出一堆東西出來,感覺就像活生生的東西!!!

感覺我就像在和真的人互動和講話!!!!我在跟我的電腦對話誒誒誒誒誒!!!!

好了,別興奮。

所以說,打開終端機

然後照著它上面youtube所寫的

好了以後,大概就是!!!

打開終端機

先切換到桌面

cd desktop

然後可以看看桌面有什麼

ls

會列出桌面上的東西

然後創建虛擬環境

virtualenv 資料夾名稱

再來切換到資料夾

cd 資料夾名稱

再用 ls 可以看這個資料夾裡面有什麼

ls

bin lib

include pip-selfcheck.json

會出現這樣

接著輸入

source bin/activate

就會切換到前面會有(資料夾名稱)

此時可以打

python

去看看你的python版本

我不知道是不是我的mac有裝

之後在»>後面打exit() 會是下面這樣

exit()

離開然後在打

pip install django

原來pip是這樣使用,我也沒有去估狗pip是什麼。總之就是裝django

就讓他跑,我說的有趣就是這個,沒跟他說去哪個網址弄他就會自己去載自己去安裝!!!超猛的!!!

[Errno 13] 你如果看到好幾行紅字又包括這樣的訊息,代表你沒切到虛擬環境

您需要

source bin/activate

確認好,因為我一開始這打錯,整個找不到!!!!!!

最後

pip freeze

會看到

Django==1.9.8

django的版本

然後

django-admin.py startproject my_project

創一個project 然後切到那

cd my_project

然後runserver

python manage.py runserver

你可能會看到這些

You have unapplied migrations; your app may not work properly until they are applied.

Run ‘python manage.py migrate’ to apply them.

可能會看到這兩行是紅字

這時候就是照他上面說的執行

python manage.py migrate

會跑出一堆[ ]為首的一行一行

最後再跑一次

python manage.py runserver

就會看到一堆ok,ok,done,done

就可以接了

接著可以打上面提供的網址

http://127.0.0.1:8000/

可以看到自己的網站

或者學弟說

python manage.py runserver 0.0.0.80

這樣好像也行,最後那個是80 port 這的意思是說哪個server連進來都行!!!

這個是在你的電腦裡開啟一個project

每次用一次虛擬環境就要再裝一次django

指令還是先學一學好,今天學太多東西了,還是先講這個畢竟卡了整個上午

然後,之後又被學弟講了一堆根本沒聽懂的東西,還請另外一個學弟翻譯給我聽XDDDD哈哈哈哈

這果然磁場不合就算講中文也不懂學弟想表達什麼