flask框架1

  • 使用的flask版本爲0.10.1
  • 建立一個最簡單的flask程序:
from flask import  Flask
    app = Flask(__name__)
    print('run')
    @app.route('/')
    def index():
        return 'hello flask'
    if __name__ == '__main__':
        app.run()
- Flask函數接收一個參數__name__,它會指向程序所在的路徑
- 裝飾器的做用是將路由映射到視圖函數 index
-  run 方法 啓動 WEB 服務器
  • 配置初始參數
    • flask實例建立時還可傳入:
      • static_path 靜態文件訪問路徑(不推薦使用,可以使用 static_url_path 代替)
      • static_url_path 靜態文件訪問路徑,默認爲/static
      • static_folder 靜態文件存儲的文件夾,默認爲 static
      • template_folder 模板文件存儲的文件夾,默認爲 templates
  • 程序加載配置
    • 程序加載運行時的配置,能夠配的有debug,數據庫連接等,有三種配置方式:
      • 從配置對象中加載:
        • app.config.from_object() 該方式須要先寫一個配置類,類中寫入相關配置,並將該類傳入
      • 從配置文件中加載
        • app.config.from_pyfile() 該方式須要先寫一個配置文件,文件寫入相關配置,並將該文件名(路徑)傳入
      • 從環境變量中加載
        • app.config.from_envvar() 不推薦
  • RUN方法的參數:
    • .run(host="0.0.0.0", port=5000, debug = True) 能夠指定運行主機的ip,端口以及debug開關
  • 動態路由及傳參:
    • @app.route('/') 這種直接指定路徑的爲靜態路由
    • 動態傳參,能夠獲取到指定url後面攜帶的信息,並可做爲參數進行傳遞:
      @app.route('/user/<user_id>')
      def user_info(user_id):
      return 'hello %s' % user_id
    • 傳遞的參數還能夠指定數據類型,如把 改成 ,也能夠本身定義轉換器,來實現參數的控制
  • 指定請求方式:
    • @app.route('/',methods=['post']) 不指定時默認爲get
  • 獲取請求參數,獲取時需先導入 from flask import request
    • get: request.args.get()
    • post: request.form.get()
    • 上傳文件:request.files.get(),獲取到文件後使用.save(路徑)保存
  • 返回json
    • 導入jsonify,能夠直接使用jsonify(字典)
  • 重定向
    • 導入redirect,視圖函數直接return redirect('要重定向的網址')
    • 導入url_for,使用return redirect(url_for('函數名'))反向解析進行重定向,若是函數有參數,直在url_for('函數名',參數=‘xxx’)
  • 自定義狀態碼
    • return 要返回的數據,'狀態碼 說明內容' return 'test code','789 err'
  • 請求鉤子,經過裝飾器形式實現
    • 在處理第一個請求前執行:before_first_request,使用時直接@app.before_first_request
    • 在每次請求前執行:before_request 使用同上
    • 在每次請求後執行:after_request 使用同上
    • 每次請求結束以後執行: teardown_request 使用同上
  • 狀態保持
    • cookie 在客戶端存儲信息使用Cookie
      • 設置時導入from flask imoprt Flask,make_response
      • 設置:
        response = make_response('cookies set success')
        response.set_cookie('user_name','jams',max_age=3600) 以鍵值對的形式設置,max_age設置有效時長
      • 獲取時使用request
        re_cookie = request.cookies.get('user_name')
    • session 在服務器端存儲信息使用Session Session依賴於Cookie
      • 設置時導入from flask import Flask,session
        session['se_name'] = 'Liming'
      • 獲取時直接使用session.get('se_name')
      • 設置session時必須先設置secret_key:app.secret_key = 'hjhjhsakjgyhweqoaa'
相關文章
相關標籤/搜索