国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

從零開始搭建論壇(三):Flask框架簡單介紹

Alan / 1369人閱讀

摘要:我們的論壇項目就使用了該框架。此外,麥子學院也有一個入門視頻教程,一共小時的視頻教程,涵蓋開發的方方面面,包括環境的搭建,語法介紹,項目結構的組織,全球化,單元測試等內容。博客地址更多閱讀的機制三個框架的對比

前面兩篇文章中我們已經了解 Web(HTTP)服務器,Web應用程序,Web框架,WSGI這些 Python Web 開發中的概念。我們知道,Web框架通過將不同Web應用程序中的共性部分給抽象出來,提供一系列通用的接口,從而避免開發者做重復性工作,讓其將精力放在業務相關的實現。

接下來一起來看一個具體的 Web 框架,這里選擇 Flask,因為它是一個年輕充滿活力的微框架,有著眾多的擁護者,文檔齊全,社區活躍度高。我們的論壇項目 就使用了該框架。

Flask 框架

為了理解 Flask 框架是如何抽象出Web開發中的共同部分,我們先來看看Web應用程序的一般流程。對于Web應用來說,當客戶端想要獲取動態資源時,就會發起一個HTTP請求(比如用瀏覽器訪問一個 URL),Web應用程序會在后臺進行相應的業務處理,(從數據庫或者進行一些計算操作等)取出用戶需要的數據,生成相應的HTTP響應(當然,如果訪問靜態資源,則直接返回資源即可,不需要進行業務處理)。整個處理過程如下圖所示:

實際應用中,不同的請求可能會調用相同的處理邏輯。這里有著相同業務處理邏輯的 HTTP 請求可以用一類 URL 來標識。比如論壇站點中,對于所有的獲取Topic內容的請求而言,可以用 topic// 這類URL來表示,這里的 topic_id 用以區分不同的topic。接著在后臺定義一個 get_topic(topic_id) 的函數,用來獲取topic相應的數據,此外還需要建立URL和函數之間的一一對應關系。這就是Web開發中所謂的路由分發,如下圖所示:

Flask底層使用werkzeug來做路由分發,代碼寫起來十分簡單,如下:

@app.route("/topic//") 
def get_topic(topic_id):
    # Do some cal or read from database
    # Get the data we need.

通過業務邏輯函數拿到數據后,接下來需要根據這些數據生成HTTP響應(對于Web應用來說,HTTP響應一般是一個HTML文件)。Web開發中的一般做法是提供一個HTML模板文件,然后將數據傳入模板,經過渲染后得到最終需要的HTML響應文件。

一種比較常見的場景是,請求雖然不同,但響應中數據的展示方式是相同的。仍以論壇為例,對不同topic而言,其具體topic content雖然不同,但頁面展示的方式是一樣的,都有標題攔,內容欄等。也就是說,對于 topic 來說,我們只需提供一個HTML模板,然后傳入不同topic數據,即得到不同的HTTP響應。這就是所謂的模板渲染,如下圖所示:

Flask 使用 Jinja2 模板渲染引擎來做模板渲染,代碼如下:

@app.route("/topic//")
def get_topic(topic_id):
    # Do some cal or read from database
    # Get the data we need.
    return render_template("path/to/template.html", data_needed)

總結一下,Flask處理一個請求的流程就是,首先根據 URL 決定由那個函數來處理,然后在函數中進行操作,取得所需的數據。再將數據傳給相應的模板文件中,由Jinja2 負責渲染得到 HTTP 響應內容,然后由Flask返回響應內容。

Flask 入門

關于 Flask 框架的學習,不建議直接讀官網文檔,雖然這是一手的權威資料,但并不適合初學者入手。這里推薦幾個學習資料,可以幫助新手很快的入門:

匯智網flask框架教程:一個非常適合入門的精簡教程,主要分為七部分:

快速入門

路由:URL 規則與視圖函數

請求、應答與會話

上下文對象:Flask 核心機制

模版:分離數據與視圖

訪問數據庫:SQLAlchemy簡介

藍圖:Flask應用組件化

教程簡練地總結了 Flask 最核心的內容,并且還提供了一個簡單的在線練習環境,方便一邊學習理論一邊動手實踐。

此外,麥子學院也有一個 Flask入門 視頻教程,一共8小時的視頻教程,涵蓋flask web 開發的方方面面,包括環境的搭建,flask 語法介紹,項目結構的組織,flask 全球化,單元測試等內容。視頻作者有 17 年軟件開發經驗,曾任微軟深圳技術經理及多家海外機構擔任技術顧問,夠牛!視頻講的也確實不錯。

如果上面兩個不能滿足你,那么還可以看 Flask Web開發:基于Python的Web應用開發實戰 這本有著 8.6 評分的書,相信沒看完就躍躍欲試想寫點什么了。這么優秀的框架,Github 上當然也有 awesome-flask了,想深入學習flask的話,這里不失為一個好的資源帖。

本篇大概談了下 Flask 的路由分發和模版渲染,下篇我們會繼續講Flask使用中的一些問題。

博客地址

更多閱讀

What is the purpose of Flask"s context stacks?
Flask 的 Context 機制
Flask、Django、Pyramid三個框架的對比

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/44228.html

相關文章

  • 從零開始搭建論壇(一):Web服務器與Web框架

    摘要:服務器通過協議與客戶端通信,因此也被稱為服務器。本文標題為從零開始搭建論壇一服務器與框架本文鏈接為更多閱讀自己動手開發網絡服務器一自己動手開發網絡服務器二自己動手開發網絡服務器三服務器網關接口實現原理分析最佳實踐指南應用淺談框架編程簡介 之前用 Django 做過一個小的站點,感覺Django太過笨重,于是就準備換一個比較輕量級的 Web 框架來玩玩。Web.py 作者已經掛掉,項目好...

    dantezhao 評論0 收藏0
  • 從零開始搭建論壇(二):Web服務器網關接口

    摘要:在從零開始搭建論壇一服務器與框架中我們弄清楚了服務器應用程序框架的概念??蚣軕蒙蔂顟B碼以及響應報頭,然后將二者傳遞至,等待服務器保存。添加響應頭,狀態碼返回響應信息創建一個服務器實例目前支持的成熟服務器有很多,是相當不錯的一個。 在 從零開始搭建論壇(一):Web服務器與Web框架 中我們弄清楚了Web 服務器、Web 應用程序、Web框架的概念。對于 Python 來說,越來越多...

    Astrian 評論0 收藏0
  • 從零開始Flask 搭建一個網站(四)

    摘要:前言從零開始用搭建一個網站三介紹了網頁前端與后端前端與前端之間數據的交流。作者極光為極光團隊賬號,歡迎關注原文從零開始用搭建一個網站四知乎專欄極光日報 前言 從零開始用 Flask 搭建一個網站(三) 介紹了網頁前端與后端、前端與前端之間數據的交流。本節主要介紹一下如何應用 Flask-OAuthlib, 使用 Flask-OAuthlib 就可以輕松地請求第三方應用提供的 API 。...

    CarterLi 評論0 收藏0
  • 從零開始Flask 搭建一個網站(

    摘要:從零開始用搭建一個網站二介紹了有關于數據庫的運用,接下來我們在完善一下數據在前端以及前端到后端之間的交互。在中有和兩個函數,分別是請求成功和失敗的回調函數。作者極光為極光團隊賬號,歡迎關注原文從零開始用搭建一個網站三知乎專欄極光日報 從零開始用 Flask 搭建一個網站(二) 介紹了有關于數據庫的運用,接下來我們在完善一下數據在前端以及前端到后端之間的交互。本節涉及到前端,因此也會講解...

    mykurisu 評論0 收藏0
  • 從零開始Flask 搭建一個網站(二)

    摘要:從零開始用搭建一個網站一介紹了如何搭建環境,以及應用基本項目結構。我們要搭建的網站是管理第三方集成的控制臺,類似于。我們先定義一個用戶模型然后在文件夾下創建一個文件。 從零開始用 Flask 搭建一個網站(一) 介紹了如何搭建 Python 環境,以及 Flask 應用基本項目結構。我們要搭建的網站是管理第三方集成的控制臺,類似于 Slack。 本篇主要講解數據如何在 Flask 應用...

    Coly 評論0 收藏0

發表評論

0條評論

Alan

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<