Web開發是一個大概念,而且當今Web開發的一大熱門語言是Python(最大的當然還是PHP)。
1 WSGI, 即Web Server Gateway Interface
Web開發有兩大基礎:
HTTP協定
HTML語言
HTTP協定在Web領域的重要性不必贅述,這樣一個重要的概念,如果交給開發者去實現,且不談編程,單是看懂龐大的協議,就會花掉大量的時間。好在我們意識到,實現協議的工作,顯然是可重複利用的。可重複利用的HTTP協定實現,被封裝在Python庫裡,就有了Python進行Web開發最基本的一個函式庫:WSGI(Web Server Gateway Interface)。 WSGI為開發者封裝了HTTP協定的實現,將網路通訊抽象化為接收資料封包和發送資料封包的簡單函數。對HTTP協定有基本了解的讀者可以看一看下面的例子。
def application (environ, start_response): start_response('200 OK', [('Content-Type', 'text/html')]) return '<h1>Hello World!</h1>'
上面的這個函數就是WSGI規定的函式形式,接收兩個參數environ, start_response,回傳header和body。從這個例子我們可以看出,WSGI已經對開發者隱藏了HTTP協定的發送、接收過程,而開發者只需要管好自己的Web程式要做的事情,可謂大大便捷了開發人員的工作。
2 Web框架
WSGI是重要的Web開發庫,使開發者不再被HTTP協定困擾,但僅僅有WSGI還不夠,在實際開發中,我們希望有一套Web框架,能為開發者做更多的事情。開發者想要框架能做更多事情,想要框架能夠處理不同URL的訪問,如對同一ip不同目錄的訪問;想要框架能夠處理不同形式的訪問,如GET, POST等。
這就說到了用Python進行Web開發的利器:Web框架。 Web框架提供了Web開發更高層次的抽象,開發者可以把更少的精力花在各種回應的區分上,而把主要的精力用在回應的內容上。以主流的Python-Web框架Flask為例,開發者可以為每種URL,每個存取方式定義單獨的函數。下面的程式碼就是一個簡單的Flask框架下的Web程式。
from flask import Flask from flask import request app = Flask(__name__) @app.route('/', methods=['GET', 'POST']) def home(): return '<h1>Home</h1>' @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对象读取表单内容: if request.form['username']=='admin' and request.form['password']=='password': return '<h3>Hello, admin!</h3>' return '<h3>Bad username or password.</h3>' if __name__ == '__main__': app.run()
有了這些基本的認識,我們就已經能夠用Python進行Web開發了。當然,本文所談及的,只是用Python進行Web開發最入門的知識,若要深入下去,還有許多東西需要學習,如資料庫管理、自訂Web框架等。
以上是web前端開發python能做嗎的詳細內容。更多資訊請關注PHP中文網其他相關文章!