對比
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模式:
如果開啓了
DEBUG
模式, 那麼在代碼中如果拋出了異常,在瀏覽器的頁面中可以看到具體的錯誤信息,以及具體的錯誤代碼位置。方便開發者調試。如果開啓了
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
的使用大致分爲三步
- 創建一個藍圖對象
- 在這個藍圖對象上進行操作,註冊路由
- 在應用對象上註冊這個藍圖對象
首先在 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')
今天先到這裏