1. 程式人生 > >Flask 開發| Flaskr 開發內容總結

Flask 開發| Flaskr 開發內容總結

.com ref sta gpo -m post請求 not ocs hasattr

Flaskr 開發說明

官方文檔

http://flask.pocoo.org/docs/0.12/tutorial/

演示網站
http://flaskr.it592.com/
涉及到的內容:

  • 連接sqlite,增刪查
  • 模板使用
  • 應用上下文、請求上下文
  • session
  • 單元測試
  • g,app.cli.command()

知識點詳解

  • 連接sqlite

    rv = sqlite3.connect("sqlite所在的位置")
    rv.row_factory = sqlite3.Row  # 將查詢數據和查詢語句組合為字典的形式,而非tuple
  • 模板的使用

    render_template("index.html"
    ,name = "") # 模板使用很簡單 # 在模板中變量取值用 {{ name}} # 判斷 {% if flag %} {% else %} {% endif %} # 循環 {% for x in name%} {% endfor%} # 模板繼承 {% extends 目標名%} # url生成 {{url_for("index")}} {{url_for("static",filename="")}} #靜態資源
  • g對象的使用

    # g 對象是和當前應用上下文有關的變量,能夠保證線程安全,我們可以用來存儲當前請求的一些信息
    def get_db(): if not hasattr(g, "sqlite_db"): g.sqlite_db = connect_db() return g.sqlite_db # 對於不同的請求,g對象的內容是不同的
  • app.cli.command()

    #app.cli.command() 會給flask腳本註冊一個新的命令,並且自動創建應用上下文
    @app.cli.command('initdb') #註冊initdb命令,
    def initdb_command():
    """Initializes the database."""
    init_db() print('Initialized the database.')
  • 單元測試
    根據flaskr.app.test_client()來發出get、post請求

Flask 開發| Flaskr 開發內容總結