Python總結-----Flask框架

對比

Flask與Django對比

首先要從兩個框架特點對比開始

Django:

django-admin 可以快速創建工程目錄
manage.py 管理工程項目
orm 這是一個模型類,是一個抽象層的數據庫,類似於iOS的Model、安卓的實體類和Java的Dto
admin 後臺管理站

Flask:

路由,其他需要拓展包來完成
Flask-SQLalchemy操作數據庫;
Flask-migrate管理遷移數據庫;
Flask-Mail郵件;
Flask-WTF表單;
Flask-script插入腳本;
Flask-Login認證用戶狀態;
Flask-RESTful開發REST API的工具;
Flask-Bootstrap集成前端Twitter Bootstrap框架;
Flask-Moment 本地化日期和時間;

對比

Django 強大,太強大適用於大型商業項目
Flask 簡單、靈活
因爲是新手,所以說選簡單的練手

Flask中文文檔

安裝

pip3 install Flask

基本使用

from flask import Flask #導入框架
app = Flask(__name__) #初始化Flask
@app.route('/') #添加路由
     def index(): #路由調用方法
        return 'Hello Word' #返回值
 if __name__ == '__main__':
     app.run(host='0.0.0.0', port=5011, debug=True,) #啓動Flask

啓動成功後控制檯會打印

 * Serving Flask app "server" (lazy loading)
 * Environment: production
   WARNING: This is a development server. Do not use it in a production deployment.
   Use a production WSGI server instead.
 * Debug mode: off
 * Running on http://0.0.0.0:5011/ (Press CTRL+C to quit)

正常情況下可以調用 app.run()
host 參數爲IP地址 當不設該置參數時 瀏覽器需要訪問 127.0.0.1:5011即可 即可啓動程序。當設該置參數爲 0.0.0.0 時 在瀏覽器中訪問本機IP地址加端口號即可,服務器 和開發設備同理

port 爲端口號 當不設該置參數時 端口默認爲 5000 ,如果使用阿里雲服務器,別忘了放行端口

debug 是否開啓debug模式

爲什麼罱要開啓DEBUG模式:

  1. 如果開啓了 DEBUG 模式, 那麼在代碼中如果拋出了異常,在瀏覽器的頁面中可以看到具體的錯誤信息,以及具體的錯誤代碼位置。方便開發者調試。

  2. 如果開啓了 DEBUG 模式,那麼以後在 Python 代碼中修改了任何代碼,只要按command + s , flask 就會自動的重新記載整個網站。不需要手動點擊重新運行。

在其他文件添加路由

1. 調用

在開發中,每個模塊有每個模塊的劃分,在意上手項目的時候,把所有路由全部放在了APP文件中,導致文件代碼量過大,不方便閱讀,所以就想分模塊化去寫路由

比如有一個用戶模塊,新建 user.py 文件,添加如下方法:

def login():
     return '登錄成功'
 
 def add_user_routes(app):
 
     app.add_url_rule('/user/login', view_func=login)

app.py 中導入並使用即可

from login import add_user_routes

add_user_routes(app)

2. Blueprint(藍圖)

Blueprint 的使用大致分爲三步

  1. 創建一個藍圖對象
  2. 在這個藍圖對象上進行操作,註冊路由
  3. 在應用對象上註冊這個藍圖對象

首先在 user.py 中創建藍圖對象,註冊子路由。代碼如下:

#1創建一個藍圖對象
from flask import Blueprint
#兩個必要參數'user'藍圖名字;'__name__'藍圖所在的模塊或者包,一般爲'__name__'變量
user_blue = Blueprint("user",__name__)

#2註冊路由
#@app.route('/user/login')改爲下面代碼 但是url爲’/user/login‘纔可訪問’login()‘函數方法
@index_blue.route('/login')
def login():
    return '登錄成功'

然後在應用對象上註冊這個路由對象,也就是在 app.py 中添加如下:

#3.在應用對象上註冊這個藍圖對象
from user import *
app.register_blueprint(user_blue)

其中註冊路由中,有幾個常用參數如下

static_folde 訪問靜態文件。使用/static_login/*** 訪問static_login目錄下的靜態文件

index_blue = Blueprint("login",__name__,static_folder='static_login')

static_url_path 使用 static_url_path 來改變靜態目錄的路由。 訪問路徑爲 /lib/***

index_blue = Blueprint("login",__name__,static_folder='static_login',static_url_path='/lib')

template_folder設置模板目錄

index_blue = Blueprint('login',__name__,template_folder='my_templates')

今天先到這裏

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章