Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 亚洲国产精品成人午夜在线观看,日韩精品亚洲人成在线播放,日本天堂在线观看

          整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

          flask web服務器:運行在云服務器上的最簡單的

          flask web服務器:運行在云服務器上的最簡單的web服務器

          期文章我們分享了flask的基礎知識以及如何安裝flask,當你安裝完成flask后,我們就可以打造自己的web服務器了。

          首先我們打印最簡單的hello world,并在瀏覽器中顯示

          from flask import Flask
          app=Flask(__name__)
          @app.route('/')
          def index():
              return 'hello flask'
          if __name__=='__main__':
              app.run()

          導入Flask模塊

          新建一個app,繼承Flask,app是一個Flask應用程序的接口,瀏覽器訪問網頁是從路由入口進行訪問

          Flask 建立路由使用@app.route('/')的方式()里面的便是網頁的路由地址(“/”)默認是IP地址的最初地址,路由下的函數便是完整的網頁代碼

          我們實現一個最簡單的web服務器,返回一個字符串

          利用app.run()函數來啟動flask web服務器

          ok,運行以上代碼

          * Serving Flask app "flaskweb" (lazy loading)
           * Environment: production
             WARNING: Do not use the development server in a production environment.
             Use a production WSGI server instead.
           * Debug mode: off
           * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)

          代碼運行后,flask會提示如上信息,前幾條的意思我們后幾期的文章一一分享,關鍵是看最后一行信息,我們運行在本機上,flask的默認端口是5000,在瀏覽器中輸入以上地址http://127.0.0.1:5000便可以看到我們設計的最簡單的網頁了


          flask web服務器

          以上我們便成功運行了一個flask web 服務器

          當然我們很少在瀏覽器中輸入端口號,如何只輸入http://127.0.0.1便可以看到網頁呢?

          其實,http默認監聽系統的80端口,若我們修改一下flask的默認端口為80端口,是否就可以了?

          let's try !!!

          from flask import Flask
          app=Flask(__name__)
          @app.route('/')
          def index():
              return 'hello flask'
          if __name__=='__main__':
              app.run(port=80)

          在app.run(port=80)中輸入port=80 來修改flask的默認端口,成功運行一下

          flask web服務器

          可以看到,直接輸入http://127.0.0.1就可以看到我們的網頁了,其實你在瀏覽上輸入http://127.0.0.1:80地址,瀏覽器也會自動除掉80端口

          瀏覽器的路由

          from flask import Flask
          app=Flask(__name__)
          @app.route('/index')
          def index():
              return 'hello flask'
          if __name__=='__main__':
              app.run(port=80)

          瀏覽器的路由可以幫忙我們在一個網站地址下面建立不同的網頁

          如上我們在('/index')輸入瀏覽器路由為/index,顧名思義,當我們輸入http://127.0.0.1/index時,便可以訪問網頁

          let's try again

          flask web 服務器

          flask的網頁

          flask是一個web服務器框架,當然你完全可以在路由函數下建立自己的網站,不過前端的小伙伴們可是不愿意在這里搭建自己的網頁,畢竟人家有自己的html5+CSS+JS 全家桶,那么flask是如何打造網頁的呢

          from flask import Flask, render_template
          app=Flask(__name__)
          @app.route('/index')
          def index():
              return 'hello flask'
          @app.route('/url')
          def first_url():
              return render_template('hello.html')

          flask中的render_template便可以返回一個完整的網頁,看到這里前端的小伙伴們可以放心了,又可以跟自己的html5+CSS+JS 全家桶打交到了,不過我們需要在flask運行目錄下建立一個templates文件夾

          所有的html的網頁都必須放置在這個文件夾里,以便flask能夠索引。

          <!DOCTYPE html>
          <html lang="en">
          <head>
              <meta charset="UTF-8">
              <title>Title</title>
          </head>
          <body>
          hello world,hello flask
          </body>
          </html>

          我們在網頁里面輸入簡單的代碼,然后運行一下啊

          try again and again

          網頁

          flask成功運行!!!

          看到這里,想必小伙伴們也入門了flask,前端方面的知識,小編不在這里 一一介紹,畢竟這也不是 小編的強項,我們還依然是人工智能方向的研究所,我們主要使用flask來提供web服務,來達到我們需要的功能

          最后推薦一下人工智能研究所出品的目標追蹤的專欄,喜歡人工智能,目標檢測與目標追蹤方向的小伙伴們可以一起探討學習

          flask系統性的知識,小伙伴們可以買本自己喜歡的書籍來學習,小編的文章當然也會介紹一下簡單的應用

          Flask Web開發實戰:入門、進階與原理解析
          ¥103.2
          購買
          <script src="http://mp.toutiao.com/mp/agw/mass_profit/pc_product_promotions_js?item_id=6821514931611894280"></script>

          下期預告:


          還記得我們文章中留下的問題嗎,下期我們一一來解讀一下,并講述一下如何使用域名,而不是 IP地址來訪問網頁

          介:通過Mind+創建一個Python程序,使用Flask擴展庫構建Web服務,手機、電腦通過瀏覽器遠程查看USB攝像頭視頻畫面。通過實驗,初步了解Flask擴展庫的概念和使用方法。

          此前通過OpenCV庫在行空板上查看USB攝像頭視頻的實驗,我們了解了Mind+進行Python編程的兩種模式,了解了Python第三方庫的概念。現在我們將通過Flask庫搭建一個可以遠程查看行空板攝像頭畫面的Web服務,實現自制遠程監控。

          1.實驗目標

          1. 初步了解Flask庫的概念和用法
          2. 了解Flask的圖形化編程模式
          3. 了解Flask的代碼編程模式

          2.實驗所需資源

          硬件:

          1. 電腦
          2. USB攝像頭
          3. 行空板
          4. 數據線

          本文實驗所用的臺式電腦為Windows7操作系統,行空板為V0.3.5版本,數據線為Type-C接口。

          軟件:

          • 電腦安裝Mind+軟件(本文實驗所用的Mind+軟件版本為V1.8.0 RC3.1)。
          • Python環境及Flask、OpenCV庫為Mind+自帶版本

          3.Flask庫的概念和特點

          Flask是一個輕量級的Python Web框架,它提供了構建Web應用程序所需的基本工具和庫,設計簡單且易于擴展,它具有以下特點:

          輕量級框架: Flask設計簡單且易于理解,適用于快速開發小型到中型的Web應用程序。

          基于Werkzeug和Jinja2: Werkzeug處理底層的HTTP請求和響應,Jinja2用于生成HTML頁面。

          路由: 使用裝飾器(@app.route)將URL映射到相應的處理函數,使得處理HTTP請求變得直觀和簡單。

          模板引擎: 使用Jinja2模板引擎渲染動態內容,允許在HTML中嵌入Python代碼,同時支持模板繼承和變量替換。

          請求和響應處理: 提供了簡潔的API來訪問請求數據(如表單數據)、設置響應內容和狀態碼,以及處理文件上傳等功能。

          擴展性: Flask支持大量的擴展,例如處理表單、身份驗證、數據庫集成等,使得開發者可以根據需求選擇性地添加功能。

          4.Flask庫的基本用法

          以下是Flask的基本使用步驟,黃色背景文字為示例代碼:

          4.1安裝Flask:

          首先,你需要在你的Python環境中安裝Flask。可以使用pip命令來進行安裝:

          pip install Flask

          4.2創建Flask應用實例:

          在你的Python腳本中,導入Flask類并創建一個實例:

          from flask import Flask

          app = Flask(__name__)

          4.3定義路由和視圖函數:

          路由定義了URL到Python函數的映射。使用@app.route()裝飾器來定義路由,并在其后編寫處理請求的視圖函數。

          @app.route('/')

          def hello_world():

          return 'Hello, World!'

          4.4運行Flask應用:

          在程序的最后,調用app.run()方法來啟動Flask的開發服務器。默認情況下,服務器會監聽本地的5000端口。設置 debug=True 可以開啟調試模式,便于查看和解決問題。

          if __name__ == '__main__':

          app.run(debug=True)

          4.5使用模板(可選):

          Flask支持Jinja2模板引擎,你可以創建HTML模板文件,Flask通過渲染模板來生成動態內容。

          • 在項目目錄中創建一個名為templates的文件夾。
          • 在該文件夾中編寫模板文件,例如index.html。
          • 在視圖函數中使用render_template()函數來渲染模板。

          4.6訪問應用:

          在瀏覽器中訪問 localhost:5000 (默認端口),即可看到 “Hello, World!” 的頁面輸出。

          這些步驟展示了一個非常基礎的 Flask 應用的創建和運行過程。隨著應用復雜度的增加,你可以添加更多的路由、視圖函數,使用模板引擎渲染動態內容,并集成各種 Flask 擴展來增強功能。Flask 的靈活性和簡單性使得它成為開發 Web 應用和 API 的理想選擇。

          5.模塊(圖形化)編程遠程查看行空板USB攝像頭視頻

          將USB 攝像頭接入行空板,再將行空板數據線連接到電腦主機,然后打開Mind+軟件,選擇Python模式。

          5.1在Python模式新建項目,選擇“模塊”模式。

          5.2在官方擴展庫添加“行空板”。

          5.3在用戶擴展庫添加Flask庫。

          如果用戶庫沒有顯示“Flask”庫,可以在搜索欄輸入“ext”進行搜索添加。

          5.4完成添加后,點擊“連接遠程終端”連接行空板。

          5.5按下列順序添加Flask模塊到Python主程序

          此處為方便演示,程序每次運行都會自動生成一次html網頁文件,在實際應用中,網頁應該單獨編輯,Flask僅需要向網頁模板中添加數據就行。另外,在網頁路由標簽中,此處為空,意思是訪問根目錄,也就是類似“http://localhost:5000/”的網址。如果此處添加標簽,那么訪問網頁的時候就需要在上述網址后面增加標簽名稱。如本例中自動生成代碼中可以看到攝像頭頁面的標簽為“/video_feed”,所以直接訪問攝像頭畫面的網址為:http://localhost:5000/video_feed。

          5.6點擊“運行”按鈕將程序上傳到行空板

          注意查看“終端信息輸出區”的上傳和運行情況。Flask服務啟動后,連接同一網絡的電腦和手機等終端設備即可通過瀏覽器訪問這個Flask服務。如果把該服務映射到外網固定IP,那么理論上,連接互聯網的設備都可以訪問該服務,實現遠程監控。

          上面是電腦訪問http://10.1.2.3:8000/的演示效果,這里的網址還可以是分配給行空板的其他網址,每個人局域網情況不一樣,包括網段設置,防火墻設置都有區別。所以如果除了10.1.2.3,其他地址訪問不了的話,需要檢查一下你的整個網絡的設置問題。下圖是查看行空板IP地址的方法:

          為了方便演示,手機無線訪問的方式也是通過手機直連行空板熱點,然后訪問192.168.123.1:8000來進行查看。

          實際動手嘗試的朋友可能會發現,視頻畫面是倒的,需要翻轉攝像頭才能顯示正的畫面。還有就是網頁的內容不夠豐富和靈活,還有Flask服務器啟動的參數不能靈活設置。等等這些問題都屬于模塊化編程特有的局限性,因為模塊已經被封裝,底層的代碼難以直接修改,所以功能不夠靈活。下面會演示用代碼模式實現同樣的功能,雖然需要一定的Python和Flask庫的學習成本,但是對于想實現復雜功能和靈活編程的開發者來說,這是很有必要的。

          6.代碼模式編程遠程查看行空板USB攝像頭視頻

          6.1在Python模式新建項目,選擇“代碼”模式。

          6.2打開“文件系統”,在“項目中的文件”新建一個templates文件夾(用于存放html網頁模板),文件夾中新建一個index.html文件。然后在根目錄下新建一個app.py文件。

          6.3通過“庫管理”PIP模式安裝Flask庫。

          同時檢查OpenCV庫有沒有安裝,如果未安裝,須同時安裝OpenCV庫。

          6.4雙擊打開index.html文件輸入代碼

          <!DOCTYPE html>  <!-- 聲明文檔類型為HTML5 -->
          <html lang="en">  <!-- 設置頁面語言為英文 -->
          <head>  <!-- 頁面頭部信息 -->
              <meta charset="UTF-8">  <!-- 設置頁面字符編碼為UTF-8 -->
              <meta name="viewport" content="width=device-width, initial-scale=1.0">  <!-- 設置頁面視口寬度為設備寬度,初始縮放比例為1 -->
             <title>攝像頭視頻流</title>  <!-- 設置頁面標題為“攝像頭視頻流” -->
          </head>
          <body>  <!-- 頁面主體內容 -->
              <h1>攝像頭視頻流</h1>  <!-- 顯示標題“攝像頭視頻流” -->
              <img src="{{ url_for('video_feed') }}" alt="攝像頭視頻流">  <!-- 顯示攝像頭視頻流圖片,src屬性值為通過url_for函數生成的視頻流URL,alt屬性值為“攝像頭視頻流” -->
          </body>
          </html>

          6.5雙擊打開app.py文件輸入代碼

          import cv2  # 導入OpenCV庫
          from flask import Flask, render_template, Response  # 導入Flask庫的相關模塊
          app = Flask(__name__)  # 創建一個Flask應用實例
          cap = cv2.VideoCapture(0)  # 創建一個攝像頭對象,0表示默認攝像頭
          if not cap.isOpened():  # 檢查攝像頭是否成功打開
              print("攝像頭未成功打開,請檢查攝像頭連接情況")
          def gen_frames():  # 定義一個生成幀的函數
              while cap.isOpened():  # 當攝像頭打開時
                  success, frame = cap.read()  # 讀取攝像頭的一幀畫面
                  if not success:  # 如果讀取失敗
                      print('攝像頭畫面讀取失敗')  # 打印錯誤信息
                      break  # 跳出循環
                  else:  # 如果讀取成功
                      ret, buffer = cv2.imencode('.jpg', frame)  # 將畫面編碼為JPEG格式
                      frame = buffer.tobytes()  # 將編碼后的畫面轉換為字節流
                      yield (b'--frame\r\n'  # 生成multipart/x-mixed-replace數據流的分隔符
                             b'Content-Type: image/jpeg\r\n\r\n'  # 設置內容類型為JPEG圖片
                             + frame + b'\r\n')  # 添加幀數據
          @app.route('/')  # 定義根路由
          def index():
              return render_template('index.html')  # 渲染并返回index.html模板
          @app.route('/video_feed')  # 定義視頻流路由
          def video_feed():
              return Response(gen_frames(), mimetype='multipart/x-mixed-replace; boundary=frame')  # 返回視頻流數據
          if __name__ == '__main__':  # 當腳本作為主程序運行時
              app.run(host='0.0.0.0', port=8000)  # 啟動Flask應用,監聽所有網絡接口,端口為8000

          6.6連接行空板并運行程序

          效果和圖形化模式完全一致,并且不存在視頻畫面倒置,網頁重復生成,Flask服務器運行參數不能靈活設置的問題。

          通過一個簡單的實例,我們展示了如何快速搭建一個Web服務器,響應客戶端請求,并動態生成內容。對于希望進入Web開發領域或是尋求輕量級解決方案的開發者來說,Flask無疑是一個值得深入探索的框架。

          期文章我們分享了flask的基礎知識以及如何安裝flask,當你安裝完成flask后,我們就可以打造自己的web服務器了。

          首先我們打印最簡單的hello world,并在瀏覽器中顯示

          from flask import Flask
          app=Flask(__name__)
          @app.route('/')
          def index():
              return 'hello flask'
          if __name__=='__main__':
              app.run()

          導入Flask模塊

          新建一個app,繼承Flask,app是一個Flask應用程序的接口,瀏覽器訪問網頁是從路由入口進行訪問

          Flask 建立路由使用@app.route('/')的方式()里面的便是網頁的路由地址(“/”)默認是IP地址的最初地址,路由下的函數便是完整的網頁代碼

          我們實現一個最簡單的web服務器,返回一個字符串

          利用app.run()函數來啟動flask web服務器

          ok,運行以上代碼

          * Serving Flask app "flaskweb" (lazy loading)
           * Environment: production
             WARNING: Do not use the development server in a production environment.
             Use a production WSGI server instead.
           * Debug mode: off
           * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)

          代碼運行后,flask會提示如上信息,前幾條的意思我們后幾期的文章一一分享,關鍵是看最后一行信息,我們運行在本機上,flask的默認端口是5000,在瀏覽器中輸入以上地址http://127.0.0.1:5000便可以看到我們設計的最簡單的網頁了


          flask web服務器

          以上我們便成功運行了一個flask web 服務器

          當然我們很少在瀏覽器中輸入端口號,如何只輸入http://127.0.0.1便可以看到網頁呢?

          其實,http默認監聽系統的80端口,若我們修改一下flask的默認端口為80端口,是否就可以了?

          let's try !!!

          from flask import Flask
          app=Flask(__name__)
          @app.route('/')
          def index():
              return 'hello flask'
          if __name__=='__main__':
              app.run(port=80)

          在app.run(port=80)中輸入port=80 來修改flask的默認端口,成功運行一下

          flask web服務器

          可以看到,直接輸入http://127.0.0.1就可以看到我們的網頁了,其實你在瀏覽上輸入http://127.0.0.1:80地址,瀏覽器也會自動除掉80端口

          瀏覽器的路由

          from flask import Flask
          app=Flask(__name__)
          @app.route('/index')
          def index():
              return 'hello flask'
          if __name__=='__main__':
              app.run(port=80)

          瀏覽器的路由可以幫忙我們在一個網站地址下面建立不同的網頁

          如上我們在('/index')輸入瀏覽器路由為/index,顧名思義,當我們輸入http://127.0.0.1/index時,便可以訪問網頁

          let's try again

          flask web 服務器

          flask的網頁

          flask是一個web服務器框架,當然你完全可以在路由函數下建立自己的網站,不過前端的小伙伴們可是不愿意在這里搭建自己的網頁,畢竟人家有自己的html5+CSS+JS 全家桶,那么flask是如何打造網頁的呢

          from flask import Flask, render_template
          app=Flask(__name__)
          @app.route('/index')
          def index():
              return 'hello flask'
          @app.route('/url')
          def first_url():
              return render_template('hello.html')

          flask中的render_template便可以返回一個完整的網頁,看到這里前端的小伙伴們可以放心了,又可以跟自己的html5+CSS+JS 全家桶打交到了,不過我們需要在flask運行目錄下建立一個templates文件夾

          所有的html的網頁都必須放置在這個文件夾里,以便flask能夠索引。

          <!DOCTYPE html>
          <html lang="en">
          <head>
              <meta charset="UTF-8">
              <title>Title</title>
          </head>
          <body>
          hello world,hello flask
          </body>
          </html>

          我們在網頁里面輸入簡單的代碼,然后運行一下啊

          try again and again

          網頁

          flask成功運行!!!

          看到這里,想必小伙伴們也入門了flask,前端方面的知識,小編不在這里 一一介紹,畢竟這也不是 小編的強項,我們還依然是人工智能方向的研究所,我們主要使用flask來提供web服務,來達到我們需要的功能

          最后推薦一下人工智能研究所出品的目標追蹤的專欄,喜歡人工智能,目標檢測與目標追蹤方向的小伙伴們可以一起探討學習

          flask系統性的知識,小伙伴們可以買本自己喜歡的書籍來學習,小編的文章當然也會介紹一下簡單的應用

          Flask Web開發實戰:入門、進階與原理解析
          ¥103.2
          購買
          <script src="http://mp.toutiao.com/mp/agw/mass_profit/pc_product_promotions_js?item_id=6821514932614332942"></script>

          下期預告:


          還記得我們文章中留下的問題嗎,下期我們一一來解讀一下,并講述一下如何使用域名,而不是 IP地址來訪問網頁


          主站蜘蛛池模板: 国模丽丽啪啪一区二区| 夜夜高潮夜夜爽夜夜爱爱一区| 精品国产亚洲一区二区在线观看| 精品一区二区三区免费毛片| 国产一区二区视频在线播放| 国产精品视频一区二区猎奇| 国产一区二区三区在线观看免费| 亚洲国产精品一区第二页 | 国产女人乱人伦精品一区二区 | 国内精品无码一区二区三区| 在线精品一区二区三区| 农村人乱弄一区二区 | 无码人妻精品一区二区三区99仓本| 国产一区二区不卡老阿姨| 亚拍精品一区二区三区| 精品一区二区三区免费| 精品视频一区二区三区在线观看| 午夜无码一区二区三区在线观看 | 一区二区三区在线|欧| 国产一区二区在线看| 人妖在线精品一区二区三区| 台湾无码一区二区| 伊人久久精品一区二区三区| 亚洲av日韩综合一区二区三区| 亚洲一区精品中文字幕| 精品一区二区三区免费毛片爱| 色狠狠一区二区三区香蕉| 久久久久无码国产精品一区| 老熟妇仑乱视频一区二区| 久久久国产精品亚洲一区 | 国产伦精品一区二区| 夜夜嗨AV一区二区三区| 日本成人一区二区三区| 国产精品女同一区二区| 国产福利日本一区二区三区| 国产伦精品一区二区| 久久婷婷久久一区二区三区| 亚洲综合在线一区二区三区| 区三区激情福利综合中文字幕在线一区亚洲视频1 | 国产精品美女一区二区三区| 一区二区三区电影在线观看|