python網站的結構

hiekay發表於2019-01-02

用python怎麼做一個網站。

維基百科對網站有如下描述:

網站(英文:Website)是指在網際網路上,根據一定的規則,使用HTML等工具製作的用於展示特定內容的相關網頁的集合。簡單地說,網站是一種通訊工具,就像布告欄一樣,人們可以通過網站來發布自己想要公開的資訊,或者利用網站來提供相關的網路服務。人們可以通過網頁瀏覽器來訪問網站,獲取自己需要的資訊或者享受網路服務。世界上第一個網站由蒂姆·伯納斯-李建立於1991年8月6日。

網站組成

網站是由兩大部分組成,一是伺服器,二是程式。

如果要增加互動功能,怎麼辦?那就要 這樣,網站就多了一部分,行話常說是“後端”,直接展示給看客的叫做“前端”。“後端”所做的事情就是處理“前端”使用者提交的資訊,然後給使用者一個反饋。這樣就互動起來了。

此外,為了將網站上的資料儲存起來,通常會用到一個叫做“資料庫”的東西(這個不是必須的,有的網站就沒有資料庫,有的網站用別的方式儲存資料,比如文字等),資料庫主要是儲存某些資料,讓網站的後端和前端從這裡將某些資料讀出來,顯示給看官,或者將看官提交的某些資料存進去,以便以後使用。

資料庫是計算機行業中的一個專業門來,看官有興趣,可以在這個行業中深入,公司裡面有個職位:DBA,就是幹這個的。

資料庫,簡單來說是本身可視為電子化的檔案櫃——儲存電子檔案的處所,使用者可以對檔案中的資料執行新增、擷取、更新、刪除等操作。

資料庫管理員 (英語:Database administrator,簡稱DBA),是負責管理資料庫的人。資料庫管理員負責在系統上執行資料庫,執行備份,執行安全策略和保持資料庫的完整性。因為管理資料庫是個很龐大的職務,每個公司或組織的資料庫管理員的需要也是很不同。一個大公司可能有很多資料庫管理員,但是一個小公司可能也沒有資料庫管理員,而讓系統管理員管理資料庫。

綜合以下,一般來講,網站應該是這樣的:
image.png

為了寫一個漂亮的前端,一般都要用CSS和JavaScript,但是,本教程中,因為不是專門講授這些,所以,涉及到前端的時候,就不用CSS和JavaScript了,這樣的一個惡果就是介面相當醜陋。請看官忍受吧。

在控制端,就是前面說的後端,僅適用一種語言:Python。這是本教程的終極目的,如何用Python做網站。

資料庫,我選用MySQL,關於這個資料庫有很多傳說。例如維基百科上這麼說:

MySQL(官方發音為英語發音:/maɪ ˌɛskjuːˈɛl/ “My S-Q-L”,[1],但也經常讀作英語發音:/maɪ ˈsiːkwəl/ “My Sequel”)原本是一個開放原始碼的關聯式資料庫管理系統,原開發者為瑞典的MySQL AB公司,該公司於2008年被昇陽微系統(Sun Microsystems)收購。2009年,甲骨文公司(Oracle)收購昇陽微系統公司,MySQL成為Oracle旗下產品。

MySQL在過去由於效能高、成本低、可靠性好,已經成為最流行的開源資料庫,因此被廣泛地應用在Internet上的中小型網站中。隨著MySQL的不斷成熟,它也逐漸用於更多大規模網站和應用,比如維基百科、Google和Facebook等網站。非常流行的開源軟體組合LAMP中的“M”指的就是MySQL。

但被甲骨文公司收購後,Oracle大幅調漲MySQL商業版的售價,且甲骨文公司不再支援另一個自由軟體專案OpenSolaris的發展,因此導致自由軟體社群們對於Oracle是否還會持續支援MySQL社群版(MySQL之中唯一的免費版本)有所隱憂,因此原先一些使用MySQL的開源軟體逐漸轉向其它的資料庫。例如維基百科已於2013年正式宣佈將從MySQL遷移到MariaDB資料庫。

至於伺服器空間,就放在自己的電腦上吧。

從資料庫開始

資料庫是我們要做的網站的一個基礎,我在這裡不演示不用資料庫的情況 。

從現在開始,就進入網站建設的程式。

安裝MySQL

你的電腦不會天生就有MySQL,它本質上也是一個程式,需要安裝到電腦中。

如果用的是ubuntu作業系統,可以用下面的方法。

第一步,在shell端執行如下命令:

sudo apt-get install mysql-server

這樣,看官的電腦上就已經安裝好了這個資料庫。當然,當然,還要進行配置。

第二步,配置MySQL

安裝之後,執行:

service mysqld start

啟動mysql資料庫。然後進行下面的操作,對其進行配置。
預設的MySQL安裝之後根使用者是沒有密碼的,注意,這裡有一個名詞“根使用者”,其使用者名稱是:root。執行:

$mysql -u root

在這裡之所以用-u root是因為我現在是一般使用者(firehare),如果不加-u root的話,mysql會以為是firehare在登入。注意,我在這裡沒有進入根使用者模式,因為沒必要。一般來說,對mysql中的資料庫進行操作,根本沒必要進入根使用者模式,只有在設定時才有這種可能。

進入mysql之後,會看到>符號開頭,這就是mysql的命令操作介面了。

下面設定Mysql中的root使用者密碼了,否則,Mysql服務無安全可言了。

mysql> GRANT ALL PRIVILEGES ON *.* TO root@localhost IDENTIFIED BY "123456";

注意,我這兒用的是123456做為root使用者的密碼,但是該密碼是不安全的,請大家最好使用大小寫字母與數字混合的密碼,且不少於8位。

以後如果在登入資料庫,就可以用剛才設定的密碼了。

除了上面的安裝過程,如果用的是別的作業系統,可以在google上搜尋相應的安裝方法,恕我不在這裡演示,因為我只能演示在ubuntu上的安裝流程。不過,google會幫你解決安裝遇到的問題。

執行mysql

安裝之後,就要執行它,並操作這個資料庫,建立一個做網站的基礎。我這樣來執行資料庫:

$ mysql -u root -p
Enter password: 

輸入資料庫的密碼,之後出現:

Welcome to the MySQL monitor.  Commands end with ; or g.
Your MySQL connection id is 5
Server version: 5.7.24-0ubuntu0.18.04.1 (Ubuntu)

Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type `help;` or `h` for help. Type `c` to clear the current input statement.


mysql> 

看到這個介面內容,就說明你已經進入到資料裡面了。接下來就可以對這個資料進行操作。例如:

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| carstore           |
| cutvideo           |
| itdiffer           |
| mysql              |
| performance_schema |
| phpcms             |
| phpcms2            |
| pushsystem         |
| sipras             |
| test               |
+--------------------+

用這個命令,就列出了當前mysql已經有的資料庫。

除了這種用命令列形式對資料庫進行操作之外,還有不少視覺化方式運算元據庫的工具。這裡也不作介紹,有興趣的請google。不過,我喜歡命令列。


相關文章