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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

测试开发——搭建一个简单 web服务(flask框架基础)项目实战

發布時間:2025/3/15 编程问答 13 豆豆
生活随笔 收集整理的這篇文章主要介紹了 测试开发——搭建一个简单 web服务(flask框架基础)项目实战 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

搭建一個簡單 web服務-flask框架

    • 一、什么是wsgi?
    • 二、搭建一個簡單 web服務
    • 三、擴展
    • 四、請求加參數的情況
    • 五、安裝flask

一、什么是wsgi?

wsgi是webserver和application的傳話筒,起橋梁通信的作用。

二、搭建一個簡單 web服務

# coding:utf-8# 步驟: # 搭建服務 # 監聽動作 while循環,每隔幾秒鐘要去看看有沒有請求發過來 # 處理程序 # 返回數據到套接字,生成一個響應對象 from wsgiref.simple_server import make_serverdef app(env, make_reponse):# env 獲取相關數據——環境變量# make_reponse(狀態碼:header)make_reponse("200 ok", [('content-type', 'text/plain')])return [b"hello,hanhanwang"] # b為byte類型server = make_server("", 8000, app) server.serve_forever()

運行情況:(下同!)

三、擴展

  • 定義3個url,’/'首頁 ,‘register’注冊, '/login’登錄
  • 對3個url 做對應的響應
  • 異常處理:如果訪問不在指定的3個rul,報404錯誤。
  • # coding:utf-8# 步驟: # 搭建服務 # 監聽動作 while循環,每隔幾秒鐘要去看看有沒有請求發過來 # 處理程序 # 返回數據到套接字,生成一個響應對象 from wsgiref.simple_server import make_serverdef index():return "hello,I'm index!"def register():return "hello,please register!"def login():return "hello,please login!"def app(env, start_resp):# env 獲取相關數據——環境變量# start_resp(狀態碼:header)if env.get("PATH_INFO") == "/":start_resp("200 ok", [('content-type', 'text/plain')])soresponse = index()return [soresponse.encode()]elif env.get("PATH_INFO") == "/register":start_resp("200 ok", [('content-type', 'text/plain')])soresponse = register()return [soresponse.encode()]elif env.get("PATH_INFO") == "/login":start_resp("200 ok", [('content-type', 'text/plain')])soresponse = login()return [soresponse.encode()]else:start_resp("404 not found", [('content-type', 'text/plain')])return [b"sorry!page not found!"] # b為byte類型server = make_server("", 8001, app) server.serve_forever()

    如果出現很多的條件分支都是==,那就用字典去封裝。(這樣的優勢:更靈活,修改添加起來很方便)

    代碼簡化:

    # coding:utf-8# 步驟: # 搭建服務 # 監聽動作 while循環,每隔幾秒鐘要去看看有沒有請求發過來 # 處理程序 # 返回數據到套接字,生成一個響應對象 from wsgiref.simple_server import make_serverdef index():return "hello,I'm index!"def register():return "hello,please register!"def login():return "hello,please login!"# 這是一段路由 集中管理(有點像Django框架) patterns = {"/": index,"/register": register,"/login": login, }def app(env, start_resp):# env 獲取相關數據——環境變量# start_resp(狀態碼:header)url = env.get("PATH_INFO")if (url is None) or (url not in patterns.keys()):start_resp("404 not found", [('content-type', 'text/plain')])return [b"sorry!page not found!"] # b為byte類型start_resp("200 ok", [('content-type', 'text/plain')])respon = patterns.get(url)if respon is None:start_resp("404 not found", [('content-type', 'text/plain')])return [b"sorry!page not found!"] # b為byte類型return [respon().encode()]server = make_server("", 8001, app) server.serve_forever()

    https://blog.csdn.net/hanhanwanghaha寶藏女孩 歡迎您的關注!
    歡迎關注微信公眾號:寶藏女孩的成長日記
    如有轉載,請注明出處(如不注明,盜者必究)

    四、請求加參數的情況

    # coding:utf-8# 步驟: # 搭建服務 # 監聽動作 while循環,每隔幾秒鐘要去看看有沒有請求發過來 # 處理程序 # 返回數據到套接字,生成一個響應對象 import json from wsgiref.simple_server import make_serverdef index(request):return requestdef register(request):return requestdef login(request):return request# 這是一段路由 集中管理(有點像Django框架) patterns = {"/": index,"/register": register,"/login": login, }def app(env, start_resp):# app : flask核心對象# env 獲取相關數據——環境變量# start_resp(狀態碼:header)url = env.get("PATH_INFO")params = env.get("QUERY_STRING")if (url is None) or (url not in patterns.keys()):# start_resp("404 not found", [('content-type', 'text/plain')])# return [b"sorry!page not found!"] # b為byte類型# start_resp("404 not found", [('content-type', 'text/html')]) #如果想返回html,就直接改成('content-type', 'text/html')# return [b"<p style='color:green'>sorry!page not found!</p>"] # b為byte類型start_resp("404 not found", [('content-type', 'application/json')])result = json.dumps({"msg": "page is not found"})return [result.encode()]start_resp("200 ok", [('content-type', 'text/plain')])respon = patterns.get(url)if respon is None:start_resp("404 not found", [('content-type', 'text/plain')])return [b"sorry!page not found!"] # b為byte類型return [respon(params).encode()]server = make_server("", 8002, app) server.serve_forever()

    都說用了django(相比flask來說更具效率),都不會喜歡flask了,但老師說,我們學習flask就是為了采坑及對web框架有更深入的認識,當我們在django中遇到問題,處理起來也會比較容易一點。

    五、安裝flask

    pip install flask

    如圖:

    接下來就會詳細記錄flask框架實戰重點,后面繼續更博!
    我還是個flask小白,如果大佬看到,希望可以提上您寶貴的建議,感激不盡!

    https://blog.csdn.net/hanhanwanghaha歡迎關注這個超級無敵可愛的人鴨,有什么問題留言私信皆可,看見必回!
    創作不易,如有轉載,請注明出處

    創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

    總結

    以上是生活随笔為你收集整理的测试开发——搭建一个简单 web服务(flask框架基础)项目实战的全部內容,希望文章能夠幫你解決所遇到的問題。

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