很早很早的時候,computer這個東西習慣於被稱之爲計算機,由於它的主要功能是完成一些科學計算的東西,我記得本身鼓搗它的時候,就是計算,根本就沒有想到它有早一日還能夠用來作別的。後來另一個名字「電腦」逐漸被人們接收了,特別是網絡發展起來以後,computer這個東西,若是要不上網,簡直就不知道幹什麼。並且,如今彷佛還有一個趨勢,愈來愈強化網絡的做用,而本機的功能雖然硬件在提高,能夠作的事情感受很少了。php
無論怎麼,網絡是離不開了。上網,連上網以後幹什麼呢?就是要登陸某某網站。不是聯網以後自動的網上內容就涌進本身的計算機,而是要操做一下那個瀏覽器,輸入網址,打開某個網站的頁面,才能獲得咱們要看的內容。因此,網絡上,必須有網站,才能讓別人來看。上網——看網頁,這是發生頻率很是高的動做。html
那麼這裏就涉及到網站。網站是誰作的呢?這是廢話,人作的。只不過這裏的人多是給某個公司打工的,也多是相似個體戶的。前端
網站怎麼作呢?作法不少啦。有直接用html網頁寫的,有用別的什麼開源系統作的,等等。python
從本講開始,我和列位看官就來看看,用python怎麼作一個網站。mysql
網站(英文:Website)是指在互聯網上,根據必定的規則,使用HTML等工具製做的用於展現特定內容的相關網頁的集合。簡單地說,網站是一種通訊工具,就像布告欄同樣,人們能夠經過網站來發布本身想要公開的信息,或者利用網站來提供相關的網絡服務。人們能夠經過網頁瀏覽器來訪問網站,獲取本身須要的信息或者享受網絡服務。世界上第一個網站由蒂姆·伯納斯-李建立於1991年8月6日。sql
網站是由兩大部分組成,一是服務器,二是程序。shell
服務器,是硬件部分。若是看官有條件,能夠本身購買服務器,而後本身創建機房或者託管到什麼信的機房等等,這樣擁有了本身的服務器啦。固然,要很多銀兩的。若是銀兩不足,就能夠用省錢的方法,購買某公司所提供的服務器空間,由於市場經濟帶來的好處,總有人會想到不是人人都本身買得起服務器的,也不是人人都有必要本身買服務器的。可是,若是還要作網站,本身又不擁有服務器怎麼辦?因此,有人就作這個生意,出租他本身的服務器的一部分空間給咱們這些窮人,這樣就共贏了,窮人只要有技術,就能夠很低的代價在網上擁有本身的網站,富人(出租服務器的)也可以經過出租收租金啦。就比如租房子的人和房東的關係同樣。固然,這樣作的結果就是必需要跟別人共同租用一個服務器,若是本身單獨租一個,價格就又貴了。數據庫
若是,我是說若是,若是你作的網站不打算放到網上讓別人隨時看(有這樣的嗎?那不是白作了嗎?有!並且不少,好比個人網站尚未作好,我就不讓別人看),這時候還能夠將本身的電腦當作一個服務器,在本身的電腦上發佈本身的網站,自我欣賞,必要時把把旁邊人拉到顯示器前面看看吧。很自戀啦。(在本身的電腦發佈的網站,其實也可以經過互聯網被人看到,就是須要一點小小的技術來發布了,這個不是重點,本教程不講,須要者能夠google或者聯繫我。)ubuntu
看官和我在後續的學習中,用的服務器就是本身的電腦啦。咱們都是喜歡自戀的。
另一部分就是服務器裏面裝的軟件部分,一般所說的網站,更多的是指這個部分。通常來說,這個部分是比較複雜的,由於網站不一樣,而有不少不一樣的程序。可是,無論什麼網站,都得有一個讓別人看的界面,這就是一個網頁,或者說,只要有一個網頁了,它就能夠作爲一個網站發佈出去。
那麼就出現了一種比較簡單的網站,就是由一些網頁組成,並且,這些網頁僅僅是用html代碼寫成的(或者用html網頁編輯工具,有圖文形式的,就能夠編輯網頁),回想我最先作的那個網頁,就是純粹用html代碼寫的。這樣寫出來的網頁,用行話說是「靜態的」。意思就是指它不容許用戶和網站有什麼交互,只是讓別人看。好比看客手欠,非要搜索什麼東西,對不起,網站不提供此功能。這種網站如今比較少了。
若是要增長交互功能,怎麼辦?那就要有處理用戶向網站提交的信息的程序了。這樣,網站就多了一部分,行話常說是「後端」,對應前面說的那個直接展現給看客的叫作「前端」。「後端」所作的事情就是處理「前端」用戶提交的信息,而後給用戶一個反饋。這樣就交互起來了。
此外,爲了將網站上的數據保存起來,一般會用到一個叫作「數據庫」的東西(這個不是必須的,有的網站就沒有數據庫,有的網站用別的方式存儲數據,好比文本等),數據庫主要是存儲某些數據,讓網站的後端和前端從這裏將某些數據讀出來,顯示給看官,或者將看官提交的某些數據存進去,以便之後使用。
數據庫是計算機行業中的一個專業門來,看官有興趣,能夠在這個行業中深刻,公司裏面有個職位:DBA,就是幹這個的。
數據庫,簡單來講是自己可視爲電子化的文件櫃——存儲電子文件的處所,使用者能夠對文件中的數據運行新增、截取、更新、刪除等操做。
數據庫管理員 (英語:Database administrator,簡稱DBA),是負責管理數據庫的人。數據庫管理員負責在系統上運行數據庫,執行備份,執行安全策略和保持數據庫的完整性。由於管理數據庫是個很龐大的職務,每一個公司或組織的數據庫管理員的須要也是很不一樣。一個大公司可能有不少數據庫管理員,可是一個小公司可能也沒有數據庫管理員,而讓系統管理員管理數據庫。
綜合如下,通常來說,網站應該是這樣的:
爲了寫一個漂亮的前端,通常都要用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操做系統,能夠用下面的方法(我相信,用ubuntu的必定不多,不過,若是看官要成爲一個優秀的程序員,我仍是推薦使用這個操做系統,或者別的LINUX發行版。哈哈)。
第一步,在shell端運行以下命令:
sudo apt-get install mysql-server
這樣,看官的電腦上就已經安裝好了這個數據庫。固然,固然,還要進行配置。
第二步,配置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會幫你解決安裝遇到的問題。
安裝以後,就要運行它,並操做這個數據庫,創建一個作網站的基礎。我這樣來運行數據庫:
qw@qw-Latitude-E4300:~$ mysql -u root -p Enter password:
輸入數據庫的密碼,以後出現:
Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 373 Server version: 5.5.38-0ubuntu0.14.04.1 (Ubuntu) Copyright (c) 2000, 2014, 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。不過,我喜歡命令行。