Flask在Python web開發(fā)中雖然熱度低于Django但是也存在不小的市場空間,能作為一個主流web開發(fā)框架之一也不是浪得虛名,還是有不少干貨在里面的,F(xiàn)lask也具備了不少的自身優(yōu)勢,在后面的認(rèn)識中我們再逐步深入了解
今天我們就來帶大家了解一下Flask的初探,首先呢就是環(huán)境,現(xiàn)在開始介紹一下通過Pycharm搭建Flask的項(xiàng)目環(huán)境;
創(chuàng)建項(xiàng)目
項(xiàng)目創(chuàng)建依托SDK Pycharm來展開;
Pycharm—>File—>New Project—>Flask—>Location 修改自己項(xiàng)目名稱及路徑 —>創(chuàng)建虛擬環(huán)境—>選擇模板語言—>create;
上面這幾步,都是根據(jù)下圖標(biāo)號一步一步的展開來的,設(shè)置的時候不要出現(xiàn)錯誤,細(xì)心!細(xì)心!細(xì)心?。?!
選擇打開窗口
New Window
項(xiàng)目架構(gòu)展示
Flask安裝
激活虛擬環(huán)境,切換目錄至虛擬環(huán)境所在位置:
D:\code\flask_wsw>cd venv\Scripts
(venv) D:\code\flask_wsw\venv\Scripts>
看到這個位置有(venv)
就代表我們已經(jīng)激活了虛擬環(huán)境,開始安裝
pip install flask
驗(yàn)證安裝是否成功
pip list | findstr Flask
這樣就代表安裝成功了;
hello flask
鼠標(biāo)右鍵—>New—>PythonFile —> hello_flask
擼代碼
前期環(huán)境搭建完成,項(xiàng)目構(gòu)建也順利完成,現(xiàn)在開始擼代碼了,7行代碼構(gòu)建一個flask 應(yīng)用;
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_flask():
return 'hello flask '
if __name__ == '__main__':
app.run()
針對每一行代碼,我們做個簡單的解讀,幫助大家理解:
第1行:導(dǎo)入所需包資源;
第2行:實(shí)例化Flask應(yīng)用;
第3行:定義路由,請求地址為/
的時候,路由跳轉(zhuǎn)到hello_flask()
這個函數(shù);
第4~5行:定義視圖,也就是hello_flask()
函數(shù),返回一個字符串’hello flask ’
第6~7行:開啟flask 服務(wù)
如果run()中為空,沒有參數(shù),服務(wù)開啟后映射的IP和port都是采用默認(rèn)值的方式,分別是127.0.0.1與5000;
如果run()中有參數(shù),app.run(host=‘127.0.0.1’, port=5000),這個設(shè)置和默認(rèn)的設(shè)置是一致的,這里我們做一點(diǎn)延伸:
- 假如你想讓局域網(wǎng)內(nèi)的用戶訪問你的服務(wù),你可以將自己本級IP設(shè)置成host的值,別人想要訪問服務(wù)第一步就是要在瀏覽器輸入你的IP地址;
- 假如5000端口被占用可以將port設(shè)置成其他未被占用的端口;
通過瀏覽器可以訪問:http://127.0.0.1:5000,實(shí)現(xiàn)服務(wù)的訪問;
app.run(host=‘127.0.0.1’, port=5000):這種方式開啟服務(wù),只能在本地瀏覽器服務(wù);
app.run(host=‘192.68.0.1’, port=5000):這種方式開啟服務(wù),既可以通過http://127.0.0.1:5000
在本地瀏覽器訪問,也可以通過http://192.68.0.1:5000
在本地瀏覽器訪問;同時同局域網(wǎng)內(nèi)其他用戶也可以通過http://192.68.0.1:5000
在各自PC的瀏覽器訪問,這是不是有點(diǎn)互聯(lián)網(wǎng)的意思了~
服務(wù)開啟后,終端打印log:
D:\wsws\python.exe D:/code/flask_wsw/hello_flask.py
* Serving Flask app 'hello_flask'
* Debug mode: off
WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead.
* Running on http://127.0.0.1:5000
Press CTRL+C to quit
客戶端【瀏覽器】
這樣就代表我們的第一個flask應(yīng)用正式成功了;
返回html
flask中給了render_template用來返回html文件
第一種 遵循jinjia2
文件布局test.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<h1>我是測試頁面</h1>
</body>
</html>
from flask import Flask,render_template
app = Flask(__name__)
@app.route('/')
def hello_flask():
return render_template("test.html")
if __name__ == '__main__':
app.run(host='127.0.0.1', port=5000)
運(yùn)行之后在客戶端請求的時候發(fā)現(xiàn)報錯
服務(wù)端也報錯報錯原因:jinjia2在沒有設(shè)置參數(shù)的時候,需要在指定路徑下去尋找html文件,這個默認(rèn)路徑就是
templates
文件夾,去這個文件夾去找test.html
,如果找到就返回,找不到就報錯就是剛才報錯的原因;
修改之后的文件夾布局:
重啟服務(wù),看看能否正常;
測試下來服務(wù)端的日志是正常顯示了,客戶端的也能正常加載test.html
了
第二種 flask實(shí)例化指定模板位置
在實(shí)例化flask APP的時候指定templates路徑
文件布局test.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<h1>我是測試頁面aaa</h1>
</body>
</html>
from flask import Flask,render_template
app = Flask(__name__,template_folder='aaa')
@app.route('/')
def hello_flask():
return render_template("test.html")
if __name__ == '__main__':
app.run(host='127.0.0.1', port=5000)
重啟服務(wù),客戶端驗(yàn)證結(jié)果:
返回json
jsonify 返回json文章來源:http://www.zghlxwxcb.cn/news/detail-780163.html
from flask import Flask, jsonify
app = Flask(__name__, template_folder='aaa')
@app.route('/')
def hello_flask():
data = {
"name": "kongjing",
"age": 18,
"sex": "female"
}
return jsonify(data)
if __name__ == '__main__':
app.run(host='127.0.0.1', port=5000)
重啟服務(wù),客戶端驗(yàn)證結(jié)果:文章來源地址http://www.zghlxwxcb.cn/news/detail-780163.html
到了這里,關(guān)于[Flask]Pycharm+Flask零基礎(chǔ)項(xiàng)目搭建入門的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!