Flask起步

Flask

- 所有的Flask程序都必須創建一個程序實例

- Flask類的構造函數只有一個必須指定的參數,即程序主模塊或包的名字

- Flask 用這個參數決定程序的根目錄,以便稍後能夠找到相對於程序根目錄的資源文件位置。


編寫一個hello world

  • 首先需要導入Flask類,並創建類的對象
from flask import Flask
app = Flask(__name__)
  • 裝飾器的作用是將路由映射到視圖函數
  • 程序實例需要知道對每個URL請求運行哪些代碼,所以要保存一個URL到Python函數的映射關係。
  • 在Flask程序中定義路由可以使用實例對象提供的app.route裝飾器,把裝飾器的函數註冊爲路由
@app.route('/')
def home():
    return 'Hello World'
  • 執行Flask實例對象的run方法,啓動web服務器
  • name== 'main’在這裏確保了直接執行這個腳本時才啓動開發web服務器,如果這個腳本由其他腳本引入,程序嘉定父級腳本會啓動不同的服務器,因此就不會執行app.run()
if __name__== '__main__':
    app.run()

Flask程序實例在創建的時候,需要默認傳入當前Flask程序所指定的包(模塊)

import_name
  • Flask程序所在的包或模塊,傳__name__就可以
  • 它可以決定Flask在訪問靜態文件時查找的路徑
static_url_path
  • 靜態文件訪問路徑,可以不傳,默認爲/ + static_folder
static——folder
  • 靜態文件存儲的文件夾,可以不傳,默認爲static
template_folder
  • 模板文件存儲的文件夾,可以不傳,默認爲templates

Flask將配置信息保存到了app.config屬性中,該屬性可以按照字典類型進行操作。

主要的使用有三種方式:

  • 從配置對象中加載(可以繼承)
app.config.from_object(你定義的配置對象)
from flask import Flask


class Default(object):
    MY_SQL = 'mysql address '


class DeafultConfig(Default):
    REDIS = 'redis address'

app = Flask(__name__)

# 從配置對象中加載
app.config.from_object(DeafultConfig)


@app.route('/')
def index():
    print(app.config['MY_SQL'])
    print(app.config['REDIS'])
    return '<h1>Hello World!</h1>'


if __name__ == '__main__':
    app.run()
  • 從配置文件中加載
app.config.from_pyfile(配置文件的名字加後綴,不需要導包)
from flask import Flask

app = Flask(__name__)
# 導入配置文件
app.config.from_pyfile('settings.py')


@app.route('/')
def index():
    print(app.config.get('SECRET_KEY'))
    return '<h1>Hello World!</h1>'


if __name__ == '__main__':
    app.run()

  • 從環境變量中加載
  • Flask使用環境變量加載配置的本質是通過環境變量值找到配置文件,再讀取配置文件的信息,其使用方式爲
app.config.from_envvar('環境變量名')

關於silent的說明:

  • 表示系統環境變量中沒有設置相應值時是否拋出異常

  • False 表示不安靜的處理,沒有值時報錯通知,默認爲False

  • True 表示安靜的處理,即時沒有值也讓Flask正常的運行下去

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