flask框架預備知識

1.web預備知識html

2.flask介紹python

3.web框架的本質及分類linux

4.flask安裝與基本設置web

 

 

1.web預備知識sql

HTTP協議:http://www.javashuo.com/article/p-shmfswju-y.html數據庫

關於web的本質:http://www.cnblogs.com/wyb666/p/9034042.htmlflask

如何自定義web框架:http://www.cnblogs.com/wyb666/p/9038644.htmlbootstrap

瞭解cookie和session:http://www.javashuo.com/article/p-ceqcahvy-ba.html瀏覽器

 

 

2.flask介紹服務器

(1)flask介紹

Python的WEB框架有Django、Tornado、Flask 等多種

Flask是一個基於Python開發而且依賴jinja2模板和Werkzeug WSGI服務的一個微型框架,對於Werkzeug本質是Socket服務端,其用於接收http請求並對請求進行預處理,而後觸發Flask框架,開發人員基於Flask框架提供的功能對請求進行相應的處理,並返回給用戶,若是要返回給用戶複雜的內容時,須要藉助jinja2模板來實現對模板的處理,即:將模板和數據進行渲染,將渲染後的字符串返回給用戶瀏覽器。

「微」(micro) 並不表示你須要把整個 Web 應用塞進單個 Python 文件(雖然確實能夠 ),也不意味着 Flask 在功能上有所欠缺。微框架中的「微」意味着 Flask 旨在保持核心簡單而易於擴展。Flask 不會替你作出太多決策——好比使用何種數據庫。而那些 Flask 所選擇的——好比使用何種模板引擎——則很容易替換。除此以外的一切都由可由你掌握。如此,Flask 能夠與您珠聯璧合。

默認狀況下,Flask 不包含數據庫抽象層、表單驗證,或是其它任何已有多種庫能夠勝任的功能。然而,Flask 支持用擴展來給應用添加這些功能,如同是 Flask 自己實現的同樣。衆多的擴展提供了數據庫集成、表單驗證、上傳處理、各類各樣的開放認證技術等功能。Flask 也許是「微小」的,但它已準備好在需求繁雜的生產環境中投入使用。

1 from werkzeug.wrappers import Request, Response
2 
3 @Request.application
4 def hello(request):
5     return Response('Hello World!')
6 
7 if __name__ == '__main__':
8     from werkzeug.serving import run_simple
9     run_simple('localhost', 4000, hello)
werkzeug實例

 

(2)MVC

MVC是衆所周知的模式,即:將應用程序分解成三個組成部分:model(模型),view(視圖),和 controller(控制 器)。其中:

  • M——管理應用程序的狀態(一般存儲到數據庫中),並約束改變狀態的行爲(或者叫作「業務規則」)
  • C——接受外部用戶的操做,根據操做訪問模型獲取數據,並調用「視圖」顯示這些數據。控制器是將「模型」和「視圖」隔離,併成爲兩者之間的聯繫紐帶
  • V——負責把數據格式化後呈現給用戶

 

(3)flask的優勢

  • 極大的定製與擴展靈活
  • ORM、模板等海量第三方擴展
  • Flask比Django更加Pythonic,與Python的philosophy更加吻合

 

(4)flask的組件

flask是短小精悍的一個web框架,內部沒有太多組件。第三方組件很是豐富:

  • flask-sqlalchemy -> ORM
  • flask-script -> 爲在Flask裏編寫額外的腳本提供了支持
  • flask-migrate -> 爲Flask應用處理SQLAlchemy數據庫遷移的擴展,使得能夠經過Flask的命令行接口或者Flask-Scripts對數據庫進行操做
  • flask-bootstrap -> 是包含了Bootstrap框架的擴展,安裝Flask-Bootstrap以後,就能夠在程序中集成Bootstrap
  • flask-moment -> 本地化時間和日期
  • flask-wtf -> 簡化表單處理、防跨站請求僞造(CSRF)攻擊
  • 、、、

注:更多第三方組件見:http://flask.pocoo.org/extensions/

 

 

3.web框架的本質及分類

(1)web框架的本質:socket服務端 與 瀏覽器的通訊

 

(2)socket服務端功能劃分

  • 負責與瀏覽器收發消息(socket通訊) --> wsgiref/uWsgi/gunicorn...
  • 根據用戶訪問不一樣的路徑執行不一樣的函數
  • 從HTML讀取出內容,而且完成字符串的替換 --> jinja2(模板語言)


(3)Python中 Web框架的分類

按上面三個功能劃分:

  • 框架自帶a,b,c --> Tornado
  • 框架自帶b和c,使用第三方的a --> Django
  • 框架自帶b,使用第三方的a和c --> Flask

按另外一個維度來劃分:

  • Django --> 大而全(你作一個網站能用到的它都有)
  • 其餘 --> Flask 輕量級

 

 

4.flask安裝與基本設置

(1)flask安裝

1 pip3 install flask

注意:

1 在linux服務器上可能沒有自帶pip3
2 因此要本身去安裝pip3,安裝方法以下:
3 apt-get install python3-pip

 

(2)建立flask項目

使用pycharm(專業版)建立:File --> New project --> 左側選flask--> 右側填項目路徑,而且勾選python.exe

本身建立: 建立一個普通項目 -> 在這個項目裏本身搭flask的框架

關於flask的框架,能夠根據項目需求和本身掌握的東西來選擇組件,可是最基本的就是如下的東西:

 

(3)設置flask項目

flask項目的設置有不少方法,能夠設置在單獨的文件中,也能夠直接寫在字典中而後傳給app.run方法

之後者爲例,如下是最基本的設置:

 1 # 運行服務器
 2 if __name__ == '__main__':
 3     # debug 模式能夠自動加載你對代碼的變更, 因此不用重啓程序
 4     # host 參數指定爲 '0.0.0.0'   可讓別的機器訪問你的代碼
 5     # host 參數指定爲 'localhost' 其實是使用本機迴環地址127.0.0.1
 6     # 127.0.0.1 通常是用來進行本地測試和開發的
 7     # port指定端口 端口是這個網站被別人訪問的入口 
 8     # 有了IP+端口 別人才能真正訪問一個網站
 9     config = dict(
10         debug=True,
11         host='localhost',
12         port=2000,
13     )
14     app.run(**config)
15     # app.run() 開始運行服務器
16     # 訪問下面的網址就能夠打開網站:
17     # http://127.0.0.1:2000/
相關文章
相關標籤/搜索