您好,登錄后才能下訂單哦!
這期內(nèi)容當(dāng)中小編將會給大家?guī)碛嘘P(guān)Python如何進(jìn)行Web開發(fā),文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
Web開發(fā)這樣一個大概念,對小白來說,想學(xué)也不知道從哪下手。當(dāng)今Web開發(fā)的一大熱門語言是Python(最大的當(dāng)然還是PHP),而恰好平常用Python也多,從Python入手,學(xué)習(xí)Web后端開發(fā),也許要容易些。
1、 WSGI, 即Web Server Gateway Interface
Web開發(fā)有兩大基礎(chǔ):
HTTP協(xié)議
HTML語言
HTTP協(xié)議在Web領(lǐng)域的重要性不必贅述,這樣一個重要的概念,如果交給開發(fā)者去實現(xiàn),且不談編程,單是看懂龐大的協(xié)議,就會花掉大量的時間。好在我們意識到,實現(xiàn)協(xié)議的工作,顯然是可重復(fù)利用的??芍貜?fù)利用的HTTP協(xié)議實現(xiàn),被封裝在Python庫里,就有了Python進(jìn)行Web開發(fā)最基本的一個庫:WSGI(Web Server Gateway Interface)。WSGI為開發(fā)者封裝了HTTP協(xié)議的實現(xiàn),將網(wǎng)絡(luò)通信抽象為接收數(shù)據(jù)報和發(fā)送數(shù)據(jù)報的簡單函數(shù)。對HTTP協(xié)議有基本了解的讀者可以看一看下面的例子。
def application (environ, start_response): start_response('200 OK', [('Content-Type', 'text/html')]) return '<h2>Hello World!</h2>'
上面的這個函數(shù)就是WSGI規(guī)定的函數(shù)形式,接收兩個參數(shù)environ, start_response,返回header和body。從這個例子我們可以看出,WSGI已經(jīng)對開發(fā)者隱藏了HTTP協(xié)議的發(fā)送、接收過程,而開發(fā)者只需要管好自己的Web程序要做的事情,可謂大大便捷了開發(fā)人員的工作。
2 Web框架
WSGI是重要的Web開發(fā)庫,使開發(fā)者不再被HTTP協(xié)議困擾,但僅僅有WSGI還不夠,在實際開發(fā)中,我們希望有一套Web框架,能為開發(fā)者做更多的事情。開發(fā)者想要框架能做更多事情,想要框架能夠處理不同URL的訪問,如對同一ip不同目錄的訪問;想要框架能夠處理不同形式的訪問,如GET, POST等。
這就說到了用Python進(jìn)行Web開發(fā)的利器:Web框架。Web框架提供了Web開發(fā)更高層次的抽象,開發(fā)者可以把更少的精力花在各種響應(yīng)的區(qū)分上,而把主要的精力用在響應(yīng)的內(nèi)容上。以主流的Python-Web框架Flask為例,開發(fā)者可以為每種URL,每個訪問方式定義單獨的函數(shù)。下面的代碼就是一個簡單的Flask框架下的Web程序。
from flask import Flask from flask import request app = Flask(__name__) @app.route('/', methods=['GET', 'POST']) def home(): return '<h2>Home</h2>' @app.route('/signin', methods=['GET']) def signin_form(): return '''<form action="/signin" method="post"> <p><input name="username"></p> <p><input name="password" type="password"></p> <p><button type="submit">Sign In</button></p> </form>''' @app.route('/signin', methods=['POST']) def signin(): # 需要從request對象讀取表單內(nèi)容: if request.form['username']=='admin' and request.form['password']=='password': return '<h4>Hello, admin!</h4>' return '<h4>Bad username or password.</h4>' if __name__ == '__main__': app.run()
有了這些基本的認(rèn)識,我們就已經(jīng)能夠用Python進(jìn)行Web開發(fā)了。當(dāng)然,本文所談及的,只是用Python進(jìn)行Web開發(fā)最入門的知識,若要深入下去,還有許多東西需要學(xué)習(xí),如數(shù)據(jù)庫管理、自定義Web框架等。
上述就是小編為大家分享的Python如何進(jìn)行Web開發(fā)了,如果剛好有類似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識,歡迎關(guān)注億速云行業(yè)資訊頻道。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。