1. 程式人生 > >Falsk入門及基本操作

Falsk入門及基本操作

flask入門

封裝:tcp、ip http,socket,web開發框架

安裝

pip install flask

(瞭解) flask 框架組成

在安裝flask包時,flask依賴的相關包也會安裝。

  • flask 核心程式碼、方法封裝
  • jinja2 前段渲染值得語法
  • MarkupSafe 前端特殊字元轉義,防止後端渲染時出現問題。
  • itsdangerous 加密和安全工具
  • Werkzeug 德語。http協議封裝。

flask約定俗成架構

├─ model.py 類、資料庫表結構 模型層
├── app.py

路由、方法、業務邏輯、渲染模板方法 控制層
├── static .css .js .jpg 靜態資原始檔
└── templates .html 網頁靜態檔案 控制層

基本框架

from flask import Flask, render_template
app = Flask(__name__)		# 生成應用例項

# 路由route
@app.route('/')	# 匹配請求地址
def index():
	name = '小黑'
	age = 10
	return	render_template('index.html', name = name, age=age)


if __name__ == '__main__':
	app.run(host='0.0.0.0', port=8888)
"""
# render_template()  先獲取HTML模板資訊,插入後端變數,最終才返回給瀏覽器。
本質:
# return """
#         <html>
#             <body>
#                 <h1> hello {}
#             </body>
#         </html>
#     """.format(name)
"""	

完成上面的步驟一個簡單的路由就建立完成了,輸入點選執行欄中的網址就能直接訪問了。

注意&小知識點

路由:

  1. 匹配固定的地址。
    ‘/’ → ‘//127.0.0.1:5000//127.0.0.1:5000 匹配根目錄

flask命令列工具:
flask run --port=5001 --host=‘0.0.0.0’

app.run方法

app.run()方法:有幾個引數

  • hots 並不是伺服器的執行地址,伺服器執行在本地,而是控制允許訪問的客戶端的地址段。預設是127.0。0.1只執行自己瀏覽器訪問,不允許區域網其他人訪問, 如果配置成’0.0.0.0’,表示接受任何ip地址的客戶端,包括區域網其他人訪問。
    其他人有的可以訪問,包括區域網其他人訪問,原因是我們現在執行的flask服務
  • port 埠,整數
  • (瞭解)threaded=True 開啟多執行緒,區域網內接受多使用者訪問,實測也不夠穩定。
  • debug=True, 開啟debug模式,修改程式碼伺服器自動重啟。也可以app.config[‘DEBUG’] = True。看到日誌Debug mode:on 目前是1.0.2版本。
    之前有一個版本剛才的設定並不會生效,原因是flask app執行時讀取環境變數裡的配置值,解決 set_FLASK_DEBUG=True。
    flask1.0.2版本,開啟debug模式,終端輸入。:
    set FLASK_APP = app.py
    set FLASK_ENV = development
    flask run
    優點:敏感變數存入系統環境變數,flask命令啟動時會去環境變數中讀配置。flask命令除了包含python命令的解釋功能
    之前版本會在命令列看到服務自動重啟。而1.0.2版本看不到重啟資訊,但是生效。

可能出現的錯誤

  1. not found 檢查路由規則瀏覽器請求的url是否匹配
  2. Unicode decode error: postion 0 。flask 1.0。1原始碼gethostaddr方法,如果windows主機名是中文就會報錯。
  3. 修改程式碼,重啟伺服器,重新整理瀏覽器後結果沒有改變。原因ctrl+C後並沒有真正結束之前的服務。cmd中執行相關命令可以看到5000埠執行多個服務。這樣請求就到了之前的程式碼上。解決方法結束掉埠上的程序或重啟。
  4. aap.py同級目錄下新建了index.html, app.py檔案中 return render_template(“index.html”),結果404。原因flask是一個完整的框架,有自己的規定,render_template
    函式會補全域名和template目錄,所以這個函式裡的引數並不是一個普通的相對路徑。
    5.修改程式碼沒有生效。原因是pycharm啟動了多個程式例項。解決方法
    “”"