日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python在web可以开发吗_Python Web开发

發布時間:2023/12/4 python 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python在web可以开发吗_Python Web开发 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

參考原文

WSGI接口

WSGI(Web Server Gateway Interface)是一個接口,用來屏蔽底部的細節(如TCP的建立連接,HTTP原始請求和響應格式等)。WSGI接口定義非常簡單,只需要Web開發者實現一個函數,就可以響應客戶端的HTTP請求。

這個函數有兩個參數:environ:包含所有的HTTTP請求的dict對象;start_response:一個發送HTTP響應的函數。

這兩個參數,我們是沒有辦法提供的,是需要符合WSGI規范的服務器來提供的。

Python內置了一個WSGI服務器,這個模塊就wsgiref,是用純Python編寫的,不考慮任何的運行效率,僅供開發和測試使用。接下來,我們就來實現一個基本的響應請求的處理。

首先,編寫hello.py,用于實現Web應用程序的WSGI處理函數:

#hello.py

defapplication(environ, start_response):#返回響應的首部

start_response('200 OK',[('Content-Type', 'text/html')])#返回響應的主體

return [b'

Hello,world

']

再編寫一個server.py,用于啟動WSGI服務器,加載application()函數:

#server.py#導入響應的模塊函數:

from wsgiref.simple_server importmake_server#導入先前編寫的application函數:

from hello importapplication#創建一個服務器,IP地址為空,渡口是8000,處理函數是application

httpd = make_server('', 8000, application)print('Serving HTTP on port 8000...')#開始監聽HTTP請求:

httpd.serve_forever()

在終端運行server.py,并在瀏覽器輸入地址:localhost:8000,效果如下圖:

在命令行可以看到wsgiref打印的log:

我們也可以根據environ里的參數信息,來生成動態的HTML。

總結:無論多么復雜的Web應用程序,入口都是一個WSGI處理函數。HTTP請求的所有輸入信息都可以通過environ獲得,HTTP響應的輸出都可以通過start_response()加上函數返回值作為Body。

使用Web框架

了解了WSGI框架,我們發現:其實一個WebAPP,就是一個WSGI的處理函數,針對每個HTTP請求進行響應。但是WSGI抽象程度還是比較低,我們可以使用Web框架來實現WebAPP。

Python中的Web框架非常多,我們先直接選擇一個比較流行的Web框架——Flask來使用。

首先使用pip(Python包管理工具)來安裝Flask:

sudo apt install python-pip #安裝pip

pip install flask#安裝flask

然后編寫一個app.py,處理3個URL請求,分別是

GET / : 首頁,返回Home頁

GET /signin : 登陸頁,顯示登陸表單,用于用戶登陸

POST /signin : 處理用戶輸入的登陸表單,返回登陸結果

Flask通過Python的裝飾器在內部自動地把URL和函數給關聯起來,所以我們寫出的代碼應該這樣:

from flask importFlaskfrom flask importrequest

app= Flask(__name__)

@app.route('/', methods=['GET', 'POST'])defhome():return '

Home

'@app.route('/signin', methods=['GET'])defsignin_form():return '''

'''@app.route('/signin', methods=['POST'])defsignin():if request.form['username'] =='admin' and request.form['password'] =='password':return '

Hello,admmin!

'

return '

Bad username or password!

'

if __name__ == '__main__':

app.run()

View Code

運行python app.py,Flask自帶的server在端口5000上監聽:

打開瀏覽器,輸入首頁地址:http://localhost:5000/

繼續輸入http://localhost:5000/signin:

輸入預設的用戶名admin和密碼password,登錄成功:

輸入錯誤的信息:

總結

以上是生活随笔為你收集整理的python在web可以开发吗_Python Web开发的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。