国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于Flask的Python Web開發(fā)

2020-11-24 17:40史寶坤李欣王淑嫻樊笑含張真真河北農(nóng)業(yè)大學
數(shù)碼世界 2020年3期
關鍵詞:服務器端調(diào)用開發(fā)者

史寶坤 李欣 王淑嫻 樊笑含 張真真 河北農(nóng)業(yè)大學

引言

隨著計算機技術的發(fā)展,web開發(fā)技術也迅速的發(fā)展。它們對開發(fā)者以及對編程語言,編程框架的要求越來越高。而Flask作為簡單且易于拓展的web框架,適用于前后端分離的應用程序的 Web 服務器端開發(fā),有利于提高開發(fā)者的效率,減少耦合。同時此框架使用Python語言編寫,許多第三方庫可供開發(fā)者使用,方便了開發(fā)者的學習及開發(fā)。

1 Python簡介

Python 是一個面向對象的腳本語言。它結構簡單,定義清晰易于開發(fā)者的學習,閱讀和維護。它有著豐富的類庫,可以嵌入到其他語言中,被稱為膠水語言。其提供了很多關于數(shù)據(jù)庫的接口,適用于MVC開發(fā)模式,提高了開發(fā)者開發(fā)效率。此外,還具有可移植,可拓展等特性。近幾年, 它逐漸成為主流的編程語言,廣泛應用到web開發(fā)中。

在使用Python進行web應用的開發(fā)中,要充分利用它的標準庫以及第三方庫。相較于C語言其速度慢。因此,對于某些速度要求很高的程序代碼,應該合理利用其可嵌入性,調(diào)用C語言的代碼,提高程序運行速度。

2 Flask簡介

作為一種用Python語言編寫的“微”框架。其依賴 Jinja模板引擎和 Werkzeug工具箱進行工作。進行數(shù)據(jù)庫操作時,可以根據(jù)自己的需要選取合適的數(shù)據(jù)庫。同時可以使用SQLAlchemy進行對象關系映射,更加高效的進行數(shù)據(jù)庫的操作。其作為一個輕量級的框架,只提供最基礎的功能,但是可以通過調(diào)用類庫進行拓展,使后端業(yè)務邏輯層的編寫更加簡單,大大減輕了開發(fā)者的負擔,適用于Web API開發(fā)。

3 服務端Flask應用的生產(chǎn)環(huán)境配置

無論是C/S還是B/S架構,合理的配置好服務器端Flask生產(chǎn)環(huán)境極其重要。在進行Web API開發(fā)中,我們在一臺安裝了Linux系統(tǒng)服務器上進行了部署。部署可以分成:基礎環(huán)境的配置,采取Nginx+Gunicorn的方式部署。

3.1 Python及Flask的安裝

服務器上安裝Python,建議使用python3。然后使用pip install Flask 該服務器上安裝Flask。

3.2 Nginx+Gunicorn的方式部署Flask。

Nginx提供Http代理,反向代理,負載均衡,web緩存等功能,通過修改配置文件來實現(xiàn)。進行反向代理時根據(jù)自己的需求設置正則表達式,采取不同的轉發(fā)策略。Nginx對請求進行解析判斷,符合哪一個正則表達式,就將請求轉發(fā)到哪個服務器中。進行負載均衡時采用加權輪詢方法進行負載均衡設置,設置每個服務器的權重,高效處理客戶端請求。對服務器響應時間,傳輸大小等設置能使服務器更安全效率的運行。

Gunicorn 運行Flask項目服務器中的應用。其可以容納 WSGI應用,提供Flask工作環(huán)境的依賴,同時支持多進程運行,提高了并發(fā)數(shù)。

4 基于Flask的API實現(xiàn)

在基于Flask的Web開發(fā)中,后端使用flask處理前端發(fā)送的請求,進行控制器邏輯和業(yè)務邏輯的開發(fā)。 前端可以使用不同的語言調(diào)用后端開發(fā)的接口,實現(xiàn)前后端分離開發(fā)。

4.1 接口目錄文件

DAO:主要完成與數(shù)據(jù)層相關的工作,如數(shù)據(jù)庫的創(chuàng)建以及對其增刪改查等操作。

app:主要是一些方法類的實現(xiàn)。在某一個具體的類中使用flask_restful對前端發(fā)送的請求進行相關的讀取等操作。使用reqparse進行參數(shù)的解析,成功后,調(diào)用數(shù)據(jù)層中方法進行數(shù)據(jù)的相關操作。最后將數(shù)據(jù)層中返回的數(shù)據(jù)進行加工,返回給前端。

server.py:接口的啟動文件。當接收到前端發(fā)送的請求時,根據(jù)路由規(guī)則相應類執(zhí)行。

logs:接口的日志,記錄了接口運行時產(chǎn)生的狀態(tài),config.py:配置文件,如與數(shù)據(jù)庫的相關配置等。

4.2 接口測試

在后端程序完成后使用一些軟件對接口的功能進行測試。

5 結束語

本文對Python以及Flask的基本概念進行了研究,介紹了如何基于Flask框架配置服務器環(huán)境以及基于Flask的Web API開發(fā)。我們發(fā)現(xiàn)Flask框架可以簡單方便的進行Web API開發(fā)。作為一個輕量級的web架構,F(xiàn)lask可以快速簡單的進行高質(zhì)量Web的開發(fā),能夠滿足計算機技術日新月異發(fā)展的要求。

猜你喜歡
服務器端調(diào)用開發(fā)者
Linux環(huán)境下基于Socket的數(shù)據(jù)傳輸軟件設計
系統(tǒng)虛擬化環(huán)境下客戶機系統(tǒng)調(diào)用信息捕獲與分析①
基于Qt的安全即時通訊軟件服務器端設計
“85后”高學歷男性成為APP開發(fā)新生主力軍
基于Qt的網(wǎng)絡聊天軟件服務器端設計
16%游戲開發(fā)者看好VR
基于C/S架構的嵌入式監(jiān)控組態(tài)外設擴展機制研究與應用
基于屬性數(shù)據(jù)的系統(tǒng)調(diào)用過濾方法
利用RFC技術實現(xiàn)SAP系統(tǒng)接口通信
C++語言中函數(shù)參數(shù)傳遞方式剖析
连城县| 新乡县| 五家渠市| 仪征市| 珲春市| 专栏| 钟山县| 河西区| 来宾市| 二连浩特市| 阜城县| 江安县| 饶阳县| 武义县| 鹤峰县| 安康市| 富蕴县| 东辽县| 唐河县| 江口县| 天全县| 苍梧县| 淮滨县| 凤阳县| 涞源县| 类乌齐县| 当雄县| 赫章县| 社旗县| 赞皇县| 云南省| 尤溪县| 拉孜县| 微博| 翁源县| 阜城县| 兴国县| 天柱县| 福泉市| 衡阳市| 炉霍县|