摘要:年,甲骨文公司收購(gòu)升陽(yáng)微系統(tǒng)公司,成為旗下產(chǎn)品。隨著的不斷成熟,它也逐漸用于更多大規(guī)模網(wǎng)站和應(yīng)用,比如維基百科和等網(wǎng)站。例如維基百科已于年正式宣布將從遷移到數(shù)據(jù)庫(kù)。
很早很早的時(shí)候,computer這個(gè)東西習(xí)慣于被稱之為計(jì)算機(jī),因?yàn)樗闹饕δ苁峭瓿梢恍┛茖W(xué)計(jì)算的東西,我記得自己鼓搗它的時(shí)候,就是計(jì)算,根本就沒(méi)有想到它有早一日還可以用來(lái)做別的。后來(lái)另外一個(gè)名字“電腦”逐漸被人們接收了,特別是網(wǎng)絡(luò)發(fā)展起來(lái)之后,computer這個(gè)東西,如果要不上網(wǎng),簡(jiǎn)直就不知道干什么。而且,現(xiàn)在似乎還有一個(gè)趨勢(shì),越來(lái)越強(qiáng)化網(wǎng)絡(luò)的作用,而本機(jī)的功能雖然硬件在提升,可以做的事情感覺(jué)不多了。
不管怎么,網(wǎng)絡(luò)是離不開了。上網(wǎng),連上網(wǎng)之后干什么呢?就是要登錄某某網(wǎng)站。不是聯(lián)網(wǎng)之后自動(dòng)的網(wǎng)上內(nèi)容就涌進(jìn)自己的計(jì)算機(jī),而是要操作一下那個(gè)瀏覽器,輸入網(wǎng)址,打開某個(gè)網(wǎng)站的頁(yè)面,才能得到我們要看的內(nèi)容。所以,網(wǎng)絡(luò)上,必須有網(wǎng)站,才能讓別人來(lái)看。上網(wǎng)——看網(wǎng)頁(yè),這是發(fā)生頻率非常高的動(dòng)作。
那么這里就涉及到網(wǎng)站。網(wǎng)站是誰(shuí)做的呢?這是廢話,人做的。只不過(guò)這里的人可能是給某個(gè)公司打工的,也可能是類似個(gè)體戶的。
網(wǎng)站怎么做呢?做法很多啦。有直接用html網(wǎng)頁(yè)寫的,有用別的什么開源系統(tǒng)做的,等等。
從本講開始,我和列位看官就來(lái)看看,用python怎么做一個(gè)網(wǎng)站。
維基百科對(duì)網(wǎng)站有如下描述:
網(wǎng)站組成網(wǎng)站(英文:Website)是指在互聯(lián)網(wǎng)上,根據(jù)一定的規(guī)則,使用HTML等工具制作的用于展示特定內(nèi)容的相關(guān)網(wǎng)頁(yè)的集合。簡(jiǎn)單地說(shuō),網(wǎng)站是一種通信工具,就像布告欄一樣,人們可以通過(guò)網(wǎng)站來(lái)發(fā)布自己想要公開的信息,或者利用網(wǎng)站來(lái)提供相關(guān)的網(wǎng)絡(luò)服務(wù)。人們可以通過(guò)網(wǎng)頁(yè)瀏覽器來(lái)訪問(wèn)網(wǎng)站,獲取自己需要的信息或者享受網(wǎng)絡(luò)服務(wù)。世界上第一個(gè)網(wǎng)站由蒂姆·伯納斯-李創(chuàng)建于1991年8月6日。
網(wǎng)站是由兩大部分組成,一是服務(wù)器,二是程序。
服務(wù)器,是硬件部分。如果看官有條件,可以自己購(gòu)買服務(wù)器,然后自己建立機(jī)房或者托管到什么信的機(jī)房等等,這樣擁有了自己的服務(wù)器啦。當(dāng)然,要不少銀兩的。如果銀兩不足,就可以用省錢的方法,購(gòu)買某公司所提供的服務(wù)器空間,因?yàn)槭袌?chǎng)經(jīng)濟(jì)帶來(lái)的好處,總有人會(huì)想到不是人人都自己買得起服務(wù)器的,也不是人人都有必要自己買服務(wù)器的。但是,如果還要做網(wǎng)站,自己又不擁有服務(wù)器怎么辦?所以,有人就做這個(gè)生意,出租他自己的服務(wù)器的一部分空間給我們這些窮人,這樣就雙贏了,窮人只要有技術(shù),就可以很低的代價(jià)在網(wǎng)上擁有自己的網(wǎng)站,富人(出租服務(wù)器的)也能夠通過(guò)出租收租金啦。就好比租房子的人和房東的關(guān)系一樣。當(dāng)然,這樣做的結(jié)果就是必須要跟別人共同租用一個(gè)服務(wù)器,如果自己多帶帶租一個(gè),價(jià)格就又貴了。
如果,我是說(shuō)如果,如果你做的網(wǎng)站不打算放到網(wǎng)上讓別人隨時(shí)看(有這樣的嗎?那不是白做了嗎?有!而且很多,比如我的網(wǎng)站還沒(méi)有做好,我就不讓別人看),這時(shí)候還可以將自己的電腦當(dāng)做一個(gè)服務(wù)器,在自己的電腦上發(fā)布自己的網(wǎng)站,自我欣賞,必要時(shí)把把旁邊人拉到顯示器前面看看吧。很自戀啦。(在自己的電腦發(fā)布的網(wǎng)站,其實(shí)也能夠通過(guò)互聯(lián)網(wǎng)被人看到,就是需要一點(diǎn)小小的技術(shù)來(lái)發(fā)布了,這個(gè)不是重點(diǎn),本教程不講,需要者可以google或者聯(lián)系我。)
看官和我在后續(xù)的學(xué)習(xí)中,用的服務(wù)器就是自己的電腦啦。我們都是喜歡自戀的。
另外一部分就是服務(wù)器里面裝的軟件部分,通常所說(shuō)的網(wǎng)站,更多的是指這個(gè)部分。一般來(lái)講,這個(gè)部分是比較復(fù)雜的,因?yàn)榫W(wǎng)站不同,而有很多不同的程序。但是,不管什么網(wǎng)站,都得有一個(gè)讓別人看的界面,這就是一個(gè)網(wǎng)頁(yè),或者說(shuō),只要有一個(gè)網(wǎng)頁(yè)了,它就可以做為一個(gè)網(wǎng)站發(fā)布出去。
那么就出現(xiàn)了一種比較簡(jiǎn)單的網(wǎng)站,就是由一些網(wǎng)頁(yè)組成,而且,這些網(wǎng)頁(yè)僅僅是用html代碼寫成的(或者用html網(wǎng)頁(yè)編輯工具,有圖文形式的,就可以編輯網(wǎng)頁(yè)),回想我最早做的那個(gè)網(wǎng)頁(yè),就是純粹用html代碼寫的。這樣寫出來(lái)的網(wǎng)頁(yè),用行話說(shuō)是“靜態(tài)的”。意思就是指它不允許用戶和網(wǎng)站有什么交互,只是讓別人看。比如看客手欠,非要搜索什么東西,對(duì)不起,網(wǎng)站不提供此功能。這種網(wǎng)站現(xiàn)在比較少了。
如果要增加交互功能,怎么辦?那就要有處理用戶向網(wǎng)站提交的信息的程序了。這樣,網(wǎng)站就多了一部分,行話常說(shuō)是“后端”,對(duì)應(yīng)前面說(shuō)的那個(gè)直接展示給看客的叫做“前端”。“后端”所做的事情就是處理“前端”用戶提交的信息,然后給用戶一個(gè)反饋。這樣就交互起來(lái)了。
此外,為了將網(wǎng)站上的數(shù)據(jù)保存起來(lái),通常會(huì)用到一個(gè)叫做“數(shù)據(jù)庫(kù)”的東西(這個(gè)不是必須的,有的網(wǎng)站就沒(méi)有數(shù)據(jù)庫(kù),有的網(wǎng)站用別的方式存儲(chǔ)數(shù)據(jù),比如文本等),數(shù)據(jù)庫(kù)主要是存儲(chǔ)某些數(shù)據(jù),讓網(wǎng)站的后端和前端從這里將某些數(shù)據(jù)讀出來(lái),顯示給看官,或者將看官提交的某些數(shù)據(jù)存進(jìn)去,以便以后使用。
數(shù)據(jù)庫(kù)是計(jì)算機(jī)行業(yè)中的一個(gè)專業(yè)門來(lái),看官有興趣,可以在這個(gè)行業(yè)中深入,公司里面有個(gè)職位:DBA,就是干這個(gè)的。
數(shù)據(jù)庫(kù),簡(jiǎn)單來(lái)說(shuō)是本身可視為電子化的文件柜——存儲(chǔ)電子文件的處所,使用者可以對(duì)文件中的數(shù)據(jù)運(yùn)行新增、截取、更新、刪除等操作。
數(shù)據(jù)庫(kù)管理員 (英語(yǔ):Database administrator,簡(jiǎn)稱DBA),是負(fù)責(zé)管理數(shù)據(jù)庫(kù)的人。數(shù)據(jù)庫(kù)管理員負(fù)責(zé)在系統(tǒng)上運(yùn)行數(shù)據(jù)庫(kù),執(zhí)行備份,執(zhí)行安全策略和保持?jǐn)?shù)據(jù)庫(kù)的完整性。因?yàn)楣芾頂?shù)據(jù)庫(kù)是個(gè)很龐大的職務(wù),每個(gè)公司或組織的數(shù)據(jù)庫(kù)管理員的需要也是很不同。一個(gè)大公司可能有很多數(shù)據(jù)庫(kù)管理員,但是一個(gè)小公司可能也沒(méi)有數(shù)據(jù)庫(kù)管理員,而讓系統(tǒng)管理員管理數(shù)據(jù)庫(kù)。
綜合以下,一般來(lái)講,網(wǎng)站應(yīng)該是這樣的:
為了寫一個(gè)漂亮的前端,一般都要用CSS和JavaScript,但是,本教程中,因?yàn)椴皇菍iT講授這些,所以,涉及到前端的時(shí)候,就不用CSS和JavaScript了,這樣的一個(gè)惡果就是界面相當(dāng)丑陋。請(qǐng)看官忍受吧。
在控制端,就是前面說(shuō)的后端,僅適用一種語(yǔ)言:Python。這是本教程的終極目的,如何用Python做網(wǎng)站。
數(shù)據(jù)庫(kù),我選用MySQL,關(guān)于這個(gè)數(shù)據(jù)庫(kù)有很多傳說(shuō)。例如維基百科上這么說(shuō):
MySQL(官方發(fā)音為英語(yǔ)發(fā)音:/ma? ??skju???l/ "My S-Q-L",1,但也經(jīng)常讀作英語(yǔ)發(fā)音:/ma? ?si?kw?l/ "My Sequel")原本是一個(gè)開放源代碼的關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng),原開發(fā)者為瑞典的MySQL AB公司,該公司于2008年被升陽(yáng)微系統(tǒng)(Sun Microsystems)收購(gòu)。2009年,甲骨文公司(Oracle)收購(gòu)升陽(yáng)微系統(tǒng)公司,MySQL成為Oracle旗下產(chǎn)品。
MySQL在過(guò)去由于性能高、成本低、可靠性好,已經(jīng)成為最流行的開源數(shù)據(jù)庫(kù),因此被廣泛地應(yīng)用在Internet上的中小型網(wǎng)站中。隨著MySQL的不斷成熟,它也逐漸用于更多大規(guī)模網(wǎng)站和應(yīng)用,比如維基百科、Google和Facebook等網(wǎng)站。非常流行的開源軟件組合LAMP中的“M”指的就是MySQL。
但被甲骨文公司收購(gòu)后,Oracle大幅調(diào)漲MySQL商業(yè)版的售價(jià),且甲骨文公司不再支持另一個(gè)自由軟件項(xiàng)目OpenSolaris的發(fā)展,因此導(dǎo)致自由軟件社區(qū)們對(duì)于Oracle是否還會(huì)持續(xù)支持MySQL社區(qū)版(MySQL之中唯一的免費(fèi)版本)有所隱憂,因此原先一些使用MySQL的開源軟件逐漸轉(zhuǎn)向其它的數(shù)據(jù)庫(kù)。例如維基百科已于2013年正式宣布將從MySQL遷移到MariaDB數(shù)據(jù)庫(kù)。
不管怎么著,MySQL依然是一個(gè)不錯(cuò)的數(shù)據(jù)庫(kù)選擇,足夠支持看官完成一個(gè)相當(dāng)不小的網(wǎng)站。
至于服務(wù)器空間,就放在自己的電腦上吧。
從數(shù)據(jù)庫(kù)開始數(shù)據(jù)庫(kù)是我們要做的網(wǎng)站的一個(gè)基礎(chǔ),我在這里不演示不用數(shù)據(jù)庫(kù)的情況,因?yàn)槟欠N玩具網(wǎng)站,雖然講授簡(jiǎn)單,但是看官總是有點(diǎn)暈乎,距離真實(shí)的環(huán)境差距太大了,既然學(xué),就學(xué)點(diǎn)真的。
從現(xiàn)在開始,就進(jìn)入網(wǎng)站建設(shè)的進(jìn)程。
安裝MySQL你的電腦不會(huì)天生就有MySQL,它本質(zhì)上也是一個(gè)程序,需要安裝到電腦中。
如果看官跟我一樣,用的是ubuntu操作系統(tǒng),可以用下面的方法(我相信,用ubuntu的一定很少,不過(guò),如果看官要成為一個(gè)優(yōu)秀的程序員,我還是推薦使用這個(gè)操作系統(tǒng),或者別的LINUX發(fā)行版。哈哈)。
第一步,在shell端運(yùn)行如下命令:
sudo apt-get install mysql-server
這樣,看官的電腦上就已經(jīng)安裝好了這個(gè)數(shù)據(jù)庫(kù)。當(dāng)然,當(dāng)然,還要進(jìn)行配置。
第二步,配置MySQL
默認(rèn)的MySQL安裝之后根用戶是沒(méi)有密碼的,看官注意,這里有一個(gè)名詞“根用戶”,其用戶名是:root。運(yùn)行:
$mysql -u root
在這里之所以用-u root是因?yàn)槲椰F(xiàn)在是一般用戶(firehare),如果不加-u root的話,mysql會(huì)以為是firehare在登錄。注意,我在這里沒(méi)有進(jìn)入根用戶模式,因?yàn)闆](méi)必要。一般來(lái)說(shuō),對(duì)mysql中的數(shù)據(jù)庫(kù)進(jìn)行操作,根本沒(méi)必要進(jìn)入根用戶模式,只有在設(shè)置時(shí)才有這種可能。
進(jìn)入mysql之后,會(huì)看到>符號(hào)開頭,這就是mysql的命令操作界面了。
下面設(shè)置Mysql中的root用戶密碼了,否則,Mysql服務(wù)無(wú)安全可言了。
mysql> GRANT ALL PRIVILEGES ON *.* TO root@localhost IDENTIFIED BY "123456";
注意,我這兒用的是123456做為root用戶的密碼,但是該密碼是不安全的,請(qǐng)大家最好使用大小寫字母與數(shù)字混合的密碼,且不少于8位。
以后如果在登錄數(shù)據(jù)庫(kù),就可以用剛才設(shè)置的密碼了。
除了上面的安裝過(guò)程,看官如果用的是別的操作系統(tǒng),可以在google上搜索相應(yīng)的安裝方法,恕我不在這里演示,因?yàn)槲抑荒苎菔驹趗buntu上的安裝流程。不過(guò),google會(huì)幫你解決安裝遇到的問(wèn)題。
運(yùn)行mysql安裝之后,就要運(yùn)行它,并操作這個(gè)數(shù)據(jù)庫(kù),建立一個(gè)做網(wǎng)站的基礎(chǔ)。我這樣來(lái)運(yùn)行數(shù)據(jù)庫(kù):
qw@qw-Latitude-E4300:~$ mysql -u root -p Enter password:
輸入數(shù)據(jù)庫(kù)的密碼,之后出現(xiàn):
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>
看到這個(gè)界面內(nèi)容,就說(shuō)明你已經(jīng)進(jìn)入到數(shù)據(jù)里面了。接下來(lái)就可以對(duì)這個(gè)數(shù)據(jù)進(jìn)行操作。例如:
mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | carstore | | cutvideo | | itdiffer | | mysql | | performance_schema | | phpcms | | phpcms2 | | pushsystem | | sipras | | test | +--------------------+
用這個(gè)命令,就列出了當(dāng)前mysql已經(jīng)有的數(shù)據(jù)庫(kù)。
除了這種用命令行形式對(duì)數(shù)據(jù)庫(kù)進(jìn)行操作之外,還有不少可視化方式操作數(shù)據(jù)庫(kù)的工具。這里也不作介紹,有興趣的請(qǐng)google。不過(guò),我喜歡命令行。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/37404.html
摘要:我的決定是學(xué)人工智能,當(dāng)時(shí)對(duì)這個(gè)比較感興趣。從機(jī)器學(xué)習(xí)學(xué)到深度學(xué)習(xí)再學(xué)回機(jī)器學(xué)習(xí)。面試,成功地去公司從事機(jī)器學(xué)習(xí)深度學(xué)習(xí)方面的基礎(chǔ)工作。這個(gè)系列不僅僅以學(xué)習(xí)為目的,目的是為了達(dá)到機(jī)器學(xué)習(xí)的工作入門標(biāo)準(zhǔn)。 每個(gè)字都是經(jīng)驗(yàn)所得,都是站在一個(gè)零基礎(chǔ)的人的角度寫的,純手打+網(wǎng)上優(yōu)秀資源整合,希望大家能每個(gè)字都認(rèn)真看。 接下來(lái)文章會(huì)側(cè)重在以下幾方面 1、零基礎(chǔ)如何進(jìn)行人工智能的自學(xué)(以找工作為目...
摘要:我的決定是學(xué)人工智能,當(dāng)時(shí)對(duì)這個(gè)比較感興趣。從機(jī)器學(xué)習(xí)學(xué)到深度學(xué)習(xí)再學(xué)回機(jī)器學(xué)習(xí)。面試,成功地去公司從事機(jī)器學(xué)習(xí)深度學(xué)習(xí)方面的基礎(chǔ)工作。這個(gè)系列不僅僅以學(xué)習(xí)為目的,目的是為了達(dá)到機(jī)器學(xué)習(xí)的工作入門標(biāo)準(zhǔn)。 每個(gè)字都是經(jīng)驗(yàn)所得,都是站在一個(gè)零基礎(chǔ)的人的角度寫的,純手打+網(wǎng)上優(yōu)秀資源整合,希望大家能每個(gè)字都認(rèn)真看。 接下來(lái)文章會(huì)側(cè)重在以下幾方面 1、零基礎(chǔ)如何進(jìn)行人工智能的自學(xué)(以找工作為目...
閱讀 1914·2021-11-18 13:21
閱讀 2043·2021-10-18 13:30
閱讀 1638·2021-10-12 10:13
閱讀 999·2021-10-09 09:43
閱讀 5531·2021-09-22 15:13
閱讀 3638·2021-08-11 10:22
閱讀 994·2019-08-30 13:46
閱讀 3574·2019-08-30 13:21