摘要:中的代碼如下首先從導入,我并沒有,為何能導入呢我理解是建立項目的時候自動幫我們做了這個事情,然后初始化一個對象,參數(shù)是,代表的是本身這個模塊的名字,我們暫時不用理解為何要傳入這個參數(shù)。
--引言請見我的簡書https://www.jianshu.com/p/e27...
我們打開PyCharm,新建一個Project,在左側(cè)選擇Flask,右側(cè)Location可選擇項目存放的位置,Project Interpreter選擇使用的編譯器,我們當然可以選擇已經(jīng)安裝在電腦上的Python 3.6,但我建議選擇使用Virtualenv來建立一個虛擬的環(huán)境,這樣在虛擬環(huán)境里安裝包之類的,不會影響電腦上本身已經(jīng)裝的,并且后續(xù)如果項目較多的話也便于區(qū)分和管理。
點擊Create,創(chuàng)建好之后,PyCharm自動在項目的文件夾下建立了static、templates文件夾和HarpQA.py,此外還有一個venv文件夾,是虛擬環(huán)境用的,我們可以暫時不用管它。(如果你的PyCharm是社區(qū)版的,那么無法像專業(yè)版那樣建立Flask項目,對應的文件夾需要自己手動建立)。HarpQA.py中的代碼如下:
from flask import Flask app = Flask(__name__) @app.route("/") def hello_world(): return "Hello World!" if __name__ == "__main__": app.run()
首先從flask導入Flask,(我并沒有pip install flask,為何能導入呢?我理解是建立flask項目的時候PyCharm自動幫我們做了這個事情),然后初始化一個Flask對象app,參數(shù)是__name__,__name__代表的是本身這個模塊的名字,我們暫時不用理解為何要傳入這個參數(shù)。接下來是一個hello world函數(shù),并且有一個裝飾器@app.route("/"),意思是說,當接收到"/"這個網(wǎng)址的請求時,執(zhí)行hello world這個函數(shù),即返回字符串"Hello World!"(add_url_rule()也可以實現(xiàn)和@app.route一樣的功能 ,但使用裝飾器應該更pythonic吧),最后使用app.run()運行。運行腳本后,提示Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
我們在瀏覽器中輸入http://127.0.0.1:5000/,就可以在網(wǎng)頁中看到"Hello World!"了。
我們還可以使用debug模式來運行flask的服務端,開啟debug模式后,修改代碼不需要關(guān)閉程序,可以實時生效。有多種方法來開啟debug模式:
在app.run()中添加參數(shù),變?yōu)?b>app.run(debug=True);
在run之前增加app.debug = True;
新建config文件,在config文件中添加DEBUG = True,然后在程序中引入app.config.from_object(config);
在run之前增加app.config["DEBUG"] = True;
我們使用第3種方法,新建一個獨立的文件來保存各種參數(shù),以后項目增大的時候參數(shù)增多,便于管理。同樣在項目文件夾下新建config.py文件,添加DEBUG = True,DEBUG需大寫。在HarpQA.py中import config并添加app.config.from_object(config),再次運行HarpQA.py,提示:
* Restarting with stat * Debugger is active! * Debugger PIN: 229-291-890 * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
說明Debug模式已經(jīng)打開,我們可以直接修改代碼,例如把"Hello World!"
修改成"Hello"并保存,顯示:
* Detected change in "D:FlaskHarpQAHarpQA.py", reloading * Restarting with stat * Debugger is active! * Debugger PIN: 229-291-890 * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
說明DEBUG模式檢測到了代碼的變化并自動重載了,這時候刷新網(wǎng)頁,結(jié)果也變成了只顯示"Hello"。
如果我們要處理很多URL,可以一個一個去給他們寫對應的視圖函數(shù),這有時候是不切實際的,我們有更高效的做法,如以下代碼:
@app.route("//") def hello(name): return "Hello %s" % name
@app.route中裝飾的地址是"/
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/41222.html
摘要:每天的內(nèi)容跑起來模板引擎表單文件上傳郵件發(fā)送一框架的簡介模型負責數(shù)據(jù)的操作視圖負責數(shù)據(jù)的展示控制器控制你的的操作以及視圖模板的渲染在中叫做模型負責數(shù)據(jù)的操作控制你的的操作以及視圖模板的渲染業(yè)務邏輯的操作模板負責數(shù)據(jù)的展示二架構(gòu)三概念是 flask 每天的內(nèi)容 flask跑起來 模板引擎 flask表單 文件上傳郵件發(fā)送 flask-sqlalchemy 一、web框架的簡介 M ...
摘要:一一個最小的應用是程序?qū)嵗粋€項目只能有一個程序?qū)嵗酚裳b飾器視圖函數(shù)返回一個字符串把程序保存為用解釋器運行訪問,會看見問候。路由裝飾器這個函數(shù)的返回值稱為響應,是客戶端接收到的內(nèi)容。 一.一個最小的Flask應用 from flask import Flask app = Flask(__name__) #app是程序?qū)嵗?,一個項目只能有一個程序?qū)嵗[email protected](/) #...
閱讀 3348·2023-04-26 02:40
閱讀 4682·2021-09-22 15:22
閱讀 1649·2021-09-22 10:02
閱讀 3515·2021-08-11 10:23
閱讀 1416·2019-08-30 15:55
閱讀 2520·2019-08-30 12:48
閱讀 612·2019-08-30 11:04
閱讀 731·2019-08-29 16:29