Pycharm+Flask零基礎(chǔ)項(xiàng)目搭建入門的實(shí)現(xiàn)
Flask在Python web開發(fā)中雖然熱度低于Django但是也存在不小的市場空間,能作為一個(gè)主流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è)置的時(shí)候不要出現(xiàn)錯(cuò)誤,細(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>

看到這個(gè)位置有(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)建一個(gè)flask 應(yīng)用;
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_flask():
return 'hello flask '
if __name__ == '__main__':
app.run()
針對每一行代碼,我們做個(gè)簡單的解讀,幫助大家理解:
第1行:導(dǎo)入所需包資源;
第2行:實(shí)例化Flask應(yīng)用;
第3行:定義路由,請求地址為/的時(shí)候,路由跳轉(zhuǎn)到hello_flask()這個(gè)函數(shù);
第4~5行:定義視圖,也就是hello_flask()函數(shù),返回一個(gè)字符串’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),這個(gè)設(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在本地瀏覽器訪問;同時(shí)同局域網(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
客戶端【瀏覽器】

這樣就代表我們的第一個(gè)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)行之后在客戶端請求的時(shí)候發(fā)現(xiàn)報(bào)錯(cuò)

服務(wù)端也報(bào)錯(cuò)

報(bào)錯(cuò)原因:jinjia2在沒有設(shè)置參數(shù)的時(shí)候,需要在指定路徑下去尋找html文件,這個(gè)默認(rèn)路徑就是templates文件夾,去這個(gè)文件夾去找test.html,如果找到就返回,找不到就報(bào)錯(cuò)就是剛才報(bào)錯(cuò)的原因;
修改之后的文件夾布局:

重啟服務(wù),看看能否正常;
測試下來服務(wù)端的日志是正常顯示了,客戶端的也能正常加載test.html了

第二種 flask實(shí)例化指定模板位置
在實(shí)例化flask APP的時(shí)候指定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
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é)果:

到此這篇關(guān)于Pycharm+Flask零基礎(chǔ)項(xiàng)目搭建入門的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)Pycharm Flask項(xiàng)目搭建內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python運(yùn)用于數(shù)據(jù)分析的簡單教程
這篇文章主要介紹了Python運(yùn)用于數(shù)據(jù)分析的簡單教程,主要介紹了如何運(yùn)用Python來進(jìn)行數(shù)據(jù)導(dǎo)入、變化、統(tǒng)計(jì)和假設(shè)檢驗(yàn)等基本的數(shù)據(jù)分析,需要的朋友可以參考下2015-03-03
python數(shù)據(jù)分析apply(),map(),applymap()用法
這篇文章主要介紹了python數(shù)據(jù)分析apply(),map(),applymap()用法,可以方便地實(shí)現(xiàn)對批量數(shù)據(jù)的自定義操作。用法歸納如下,需要的朋友可以參考一下2022-03-03
Django如何繼承AbstractUser擴(kuò)展字段
這篇文章主要介紹了Django如何繼承AbstractUser擴(kuò)展字段,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-11-11
Django把SQLite數(shù)據(jù)庫轉(zhuǎn)換為Mysql數(shù)據(jù)庫的過程
之前我們默認(rèn)使用的是SQLite數(shù)據(jù)庫,我們開發(fā)完成之后,里面有許多數(shù)據(jù),如果我們想轉(zhuǎn)換成Mysql數(shù)據(jù)庫,那我們先得把舊數(shù)據(jù)從SQLite導(dǎo)出,然后再導(dǎo)入到新的Mysql數(shù)據(jù)庫里去,這篇文章主要介紹了Django如何把SQLite數(shù)據(jù)庫轉(zhuǎn)換為Mysql數(shù)據(jù)庫,需要的朋友可以參考下2023-05-05
TensorFlow可視化工具TensorBoard默認(rèn)圖與自定義圖
這篇文章主要介紹了TensorFlow可視化工具TensorBoard默認(rèn)圖與自定義圖的使用操作示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助2021-10-10
Python如何使用Selenium WebDriver模擬用戶操作
這篇文章主要為大家詳細(xì)介紹了如何使用Selenium WebDriver來模擬用戶操作,以規(guī)避這些驗(yàn)證機(jī)制,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解下2025-04-04
關(guān)于python的bottle框架跨域請求報(bào)錯(cuò)問題的處理方法
這篇文章主要介紹了關(guān)于python的bottle框架跨域請求報(bào)錯(cuò)問題的處理方法,需要的朋友可以參考下2017-03-03

