在 GCP 中建立 WordPress網站

相信經營自己的網站是很多人的夢想,接下來幾篇會教大家從零開始擁有自己的網站。首先要擁有一個網站必須把它放到一台 server 中,這樣其他人才可以連線到你的電腦中,之後才能看到像是現在的圖片、文字。也就是必須要有一台電腦隨時開機,等著其他人來連線,大家聽到這邊可能就會開始大崩潰,因為自己好像沒有電腦可以做這樣的事情…不過別擔心,現在實務上不會是這樣做,雖然我們還是要有 server ,不過這台 server 可以放在人家的機房當中,我們只需要去租它的服務就好了。不過新的問題又來拉,人家不可能白白的讓你用他的電腦,所以一般這種租用的模式通常都會收取費用( 沒錯 ! ! 你現在看的 TinyCorner 每個月都還要付錢維護…)。不過,幸好超級佛心的 Google 提供了一項服務:Google cloud platform。雖然他還是要收錢,不過它提供了一年300美金的額度讓你試用,基本上只架一個網站絕對是綽綽有餘。所以接著就是要教大家如何用 GCP 來建立網站。

進入 GCP 的服務前需要輸入一些基本資料與信用卡的資料(不過別擔心,即便過了一年之後他也不會自動收費,它會自動停掉你的帳號)。進入後,會到下面的畫面,可以點進My First Project 中,新增自己的專案

接著在左手邊的欄位找到 Marketplace 並點進去

搜尋 wordpress ,找到 Bitnami 那個點進去,並點在coumpute engine上啟動

在Deployment name中打入自己網站的名稱,zone可以按照我的選,這樣就會選擇台灣的主機,其他人連到你網站的速度會變快。至於 cpu 跟 boot disk 可以按照自己的需求選擇,當然規格越好的話,收費會越貴。如果不知道要怎麼選的話,可以按照我的設定,基本上就可以應付大部分的網站需求囉~

最後在按下【部署】後,等待一段時間就完成囉~接著要特別注意,要把Admin URL跟Admin user記錄下來,這是系統自動產生的密碼,之後登入的時候需要用到。

點進 Log into the admin panel

接著輸入剛剛記下來的帳號密碼。就可以開始使用 wordpress 囉 ~

django專案建立(Pycharm免費版)

今天要來快速的建立 djanog 專案。若是在下載 Pycharm 的時候不想付費 ( 付費版教學 ~ ),也沒有教育版可以使用的話,沒關係還有一個選項是用 Community 的版本。不過使用 Community 的版本的話就沒有辦法自動建立專案,必須要手動完成,不過幸好步驟相當簡單:

首先大家可以看到,左手邊沒有專案類型可以選擇,所以這個步驟就選擇好自己專案的路徑後,按下create就好。

接著要去C:\Users\使用者帳號(自己的)\Anaconda3\Scripts 這個路徑中,找到django-admin.ext這個檔案,也可以用右上角的搜尋找,把這個檔案複製好

複製好之後,打開我們一開始建立專案的資料夾,並把剛剛複製的執行檔放進入:

接著回到 Pycharm 的介面中,按左下角的 terminal 打開他的視窗。並輸入下面的指令:

django-admin.exe startproject firstSite

其中 firstSite 可以替換,也就是這個 django 專案的名稱。執行完後,可以看到左上角也多出一個資料夾,專案就建立好囉~~

網站與網頁—Django 初見面

這篇會先聊一下傳統網站的構成,其實最一開始,我們所逛的網站單純是由很多很多 ” 張的網頁所構成 ” ,而所謂的網站,指的就是這些網頁的集合,藉由某一頁網頁中的超連結連跳到另一個網頁,譬如說一個你在一個公司的入口網站中,點擊 ” 關於我們 “,接著就會跳出公司的詳細介紹,在你點擊的動作,其實就是單純跳到另一個網頁。而具有超連結的部分通常會用另一個顏色顯示(像是Django相關書籍介紹),點一下你就會跑到另一個頁面,按下上一頁就會回到上個頁面。最剛開始的網站就只是這樣在 ” 網頁們 ” 跑來跑去,進而找到需要的資訊。

這邊順便聊下” 網頁 “的產生,利用 HTML (現在已經發展到HTML 5 囉~)的檔案類型來” 編排 “整個網頁,注意 !! 這邊我講的是” 編排 “,沒錯,其實我們寫出來 HTML 的就是告訴瀏覽器這”網頁”要怎麼呈現給瀏覽網頁的人,他的腳色有點像是導演,告訴瀏覽器:這邊要放標題、那邊放個超連結、內文擺哪邊或是要不要呈現一個表格,最終進入我們眼簾的網頁就這樣誕生囉~~這整個過成,會像是我們去電影院看的最終影片,不會看到導演指導演員辛辛苦苦的過程。

前面說的是 ” 傳統的網站 “,其實在上面的步驟來說,嚴格上還沒牽涉” 程式設計 “,網頁只是單純對於呈現出來畫面的安排,所以其實只要記好幾個指令 ( 甚至可以查表就好….),大部分的人可以很快的上手網頁設計( 不過要做出一頁好看的網頁又是另一個故事了…)。聽起來很簡單吧,But !! 沒錯出現了一個討厭的 But,傳統方式已經無法滿足現代人對網站的需求了,你想像一件事:現在你進入一個公司的網站,結果只有看到一堆字跟超連結,偶而放個幾張圖片,捫心自問,你會不會覺得這家公司已經要迎接倒閉的命運了…。所以現在網站出現了一大堆有的沒有的功能,為了這些功能,我們必須要放入程式和這些網頁互動,除此之外我們甚至需要資料庫來把使用者資訊互動記錄下來(像是瀏覽紀錄、會員註冊、留言板或是使用者的客製化呈現…等)。這些已經不是光靠一個人可以在短時間內處理好,這些工作可能會被分給好幾個工程師一起完成,最後再塞在一起,如果就放在同一個資料夾中,幾百幾千個程式要互動起來…

為了避免這種惡夢的發生,後來出現了很多 web 的框架,協助工程師們把該放的東西放到他們該去的地方,只要位置放對的話,網站中的網頁與程式就會正確的運行。控制網站也變得單純:掌握好整個框架就可以把每一部分給劃分清楚,並讓他正確的運行。要用電影來舉例的話,像是現在一大堆” xx宇宙 ” 的系列電影。你不可能叫一個導演把所有整個宇宙的時間線跟所有故事架構出來。web 框架有點類似電影公司,他會把整個大架構給安排好,而導演編劇只要把故事影片塞到適合的位置就好。而 Django 是其中的一種 web 框架,為什麼要學習 Django 呢 ? 因為他是基於 Python 的程式語言所寫的,維持Python 一貫的簡潔爽感十足的特性。所以接下來小角落會推出一系列 Django介紹,並且試著利用 Django 來完成一個小專案,請大家拭目以待吧~~

利用 Python 做 ASCII 轉換

ASCII 是程式語言中的一種編碼方式,代表了電腦上的128字元。相信大家應該知道電腦是由一連串的 0 和 1 在運作,所以我們在儲存字元的時候,電腦會將他們轉換成0和1後儲存起來,不過為了方便人類看所以一般來說 ASCII 看起來會是十進位表示,不過在電腦中實際儲存的會是一組 2 進位數字。下面我來看看幾個例子:

A : 65 (0100 0001) ; B : 66(0100 0010) ; ! : 33(0010 0001)…

其中要特別注意,在 ASCII 編碼中我們會把數字也轉換成一組二進位編碼,而這組二進位編碼再轉回十進位時,看起來就會是一組不同的數字。

1 : 49(0011 0001) ; 2 : 50 (0011 0010)….

所以一開始大家可能會覺得很奇怪 : 為什麼明明是 1 在 ASCII會變成 49 ,其實他是一組2 進位方式儲存,這組二進位剛好是十進位的 49。
(詳細轉換表可以參考維基百科)

而利用 Python ,將字元做轉換,把字元轉換成 ASCII中所代表的數字,也可以把 ASCII 的數字轉換成字元,下面我們來實際操作看看吧 :

利用chr()我們可以把 ASCII 中的數字轉換成字元 :

利用ord()則可以把字元轉換成 ASCII 編碼方式:

接著我們來試著寫一個程式可以一段輸入的字元都轉換成 ASCII ,在我的做法中我會先把輸入字轉換成字串(str()),接著把字串中的每個字拿出來轉換,並儲存在一開始宣告的空清單中:

word_ascii = []
word = str(input("輸入文字"))
for i in word: 
    ascii_transform = ord(i)
    print(ascii_transform )
    word_ascii.append(ascii_transform)

print(word_ascii)

在空格中輸入我們想要轉換的字元,我們就會發現可以利用這個程式把字元通通轉換成ASCII 囉~

當然,要把 ASCII 轉換回來也OK,大家可以想一想上面的程式碼要怎麼修改。

用 Python 讀取 txt 檔案

前面我們使用Python來開啟與儲存檔案,現在我們要來做相反的動作,我們要把存在記事本裡面的檔案讀到程式中,儲存與讀取是一體兩面的事情,首先我們先創建一份記事本檔案,我把檔名取作 Python_reading

首先,我們要先讀取檔案出來:

f = open(r'E:/Python_reading.txt')
f.readlines()
f.close()

大家可以看到我們就把記事本中的三行文字都讀出來囉~另外大家看到 ” \n ” 不知道有沒有問題,在程式語言中, ” \n ” 指的是換行的意思,也就是在記事本中按下enter後,換航其實做的就是在剛剛的那段文字中加上” \n “,而程式在讀取的時候就會自動換行顯示給我們看。

接著如果是想要一行一行讀取呢?

利用readline()可以只讀取一行,而且再次使用的話他會變成讀取下一行,這種做法可以讓我們一行一行的閱讀記事本裡面的內容,但如果我們要一次把一行一行的資料取出來的話,我們可以利用for迴圈來完成:

f = open(r'E:/Python_reading.txt')
for line in f:
    print(line, end="")

上面就把整份記事本中的文字給讀出來了。不過這這樣其實也不夠好用,因為他只是單純印出來,所以我們可以用 list 的方式存起來。這樣我們就可以指定取出我們要的某一句。

f = open(r'E:/Python_reading.txt')
text = []
for line in f:
    text.append(line)
print(text)

接下來我們就可以依照我們想要的方式叫出來:

print(text[1])
print(text[0])
print(text[2])

順道提醒一下,在 list 當中,第一筆資料是 [0] 開始算起。所以我們就可以隨心所欲的 call出我們要的資料囉~~

以上就是我們把資料讀到 Python 中的方式,利用 Python 中的檔案存檔與讀取,就可以組合出許多新的功能。