如何用Python Flask來制作第一個(gè)Web程序?
最近一直在研究Flask這個(gè)東西,想把學(xué)習(xí)的過程分享給大家
那現(xiàn)在開始吧
我真的萬萬沒想到bilibili專欄不能導(dǎo)入markdown文件
委屈各位了,高清無碼PDF見
鏈接:https://pan.baidu.com/s/1eyqbl0FKZV10xmdYSUIMtA?
提取碼:uzjw
先插入封面

三分鐘Flask從入門到不放棄
第一分鐘 - 名詞解釋
Python:是一種解釋型腳本語言,可以應(yīng)用于諸多領(lǐng)域。
Flask:是一個(gè)使用 Python 編寫的輕量級 Web 應(yīng)用框架。
Web:一種基于超文本和HTTP的、全球性的、動(dòng)態(tài)交互的、跨平臺(tái)的分布式圖形信息系統(tǒng)。
天天網(wǎng)上沖浪你能不知道Web是啥???
第二分鐘 - 安裝Flask
直接執(zhí)行
pip install Flask
更換安裝源
如果你的網(wǎng)絡(luò)條件不是很好的話建議臨時(shí)使用國內(nèi)安裝源
臨時(shí)使用?來自清華大學(xué)開源軟件鏡像站
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pip -U再次執(zhí)行
pip install Flask
如果你沒有看到一些紅色的信息或者是上面寫滿了ERROR
那么恭喜你你已經(jīng)成功安裝了Flask框架
第三分鐘 - 編寫第一個(gè)Flask程序
找個(gè)文件夾(建議不要中文路徑),
新建文本文件
寫入以下程序代碼
保存更改后綴名為.py
比如這樣

這是一個(gè)最小的Flask應(yīng)用程序
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world():
? ? return '你好,世界!'
如何運(yùn)行它?
優(yōu)雅端莊式:
第一步:首先打開你的終端命令行
第二步:cd到存放這個(gè)文件的目錄
第三步:設(shè)置一個(gè)臨時(shí)環(huán)境變量
FLASK_APP
Linux&Mac: export FLASK_APP=hello.py
Windows: set FLASK_APP=hello.py
PowerShell
(Windows里那個(gè)藍(lán)色的命令行): $env:FLASK_APP = "hello.py"

????做好這些確認(rèn)無誤后就可以使用 flask run
命令來開啟一個(gè)flask的測試服務(wù)器了
你還可以使用python -m fkask run
來開啟這個(gè)服務(wù)器

如果你希望它停下來的話請按Ctrl
+c
`2 簡單粗暴式:
在文件的最下方補(bǔ)充一下代碼
if __name__ == '__main__': ? ?app.run()
cd到你的項(xiàng)目目錄
像執(zhí)行普通文件一樣去執(zhí)行它
python app.py

三分鐘倒計(jì)時(shí)已經(jīng)結(jié)束了,那現(xiàn)在又發(fā)生了什么?
剛剛的操作已經(jīng)讓我們使用flask運(yùn)行起來了一個(gè)測試用的web服務(wù)器,那我們?nèi)绾稳ピL問它?

請注意Flask啟動(dòng)時(shí)為我們所打印出來的信息,將他粘貼到瀏覽器

很好,就是這樣
再次打開我們的代碼,試圖去更改我們能看懂的文字
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world():
? ? return "Hello"
if __name__ == '__main__':
? ? app.run()
將服務(wù)器關(guān)閉再次開啟Press CTRL+C to quit

很好,他沒有讓我們操心,這是一臺(tái)懂事的服務(wù)器
讓我們加上注釋來康康(看看)發(fā)了什么
# 從flask模塊中導(dǎo)入Flask類
from flask import Flask
# 將Flask類實(shí)例化出來對象app
app = Flask(__name__)
# 使用了route裝飾器來裝飾hello_world()函數(shù)規(guī)定哪個(gè)鏈接可以執(zhí)行這個(gè)函數(shù)
# 這里的斜杠就是我們的根目錄http://127.0.0.1:5000/
@app.route('/')
def hello_world():
? ? # 函數(shù)的返回值就是我們最終要在瀏覽器中看到的信息
? ? return "Hello"
# 如果這個(gè)文件被執(zhí)行的時(shí)候不是以模塊的方式被導(dǎo)入的話就執(zhí)行下面的東西
if __name__ == '__main__':
? ? # 執(zhí)行這個(gè)方法之后就會(huì)運(yùn)行我們的測試服務(wù)器了
? ? app.run()
首先我們導(dǎo)入了
Flask
類。 該類的實(shí)例將會(huì)成為我們的應(yīng)用。接著我們創(chuàng)建一個(gè)該類的實(shí)例。
第一個(gè)參數(shù)是應(yīng)用模塊或者包的名稱。
他的主要作用是告訴flask我們當(dāng)前是以文件方式進(jìn)行執(zhí)行還是按照模塊的方式進(jìn)行導(dǎo)入。只有這樣flask應(yīng)用才能準(zhǔn)確無誤的找到這個(gè)模塊目錄下的其他需要的文件.
接下來我們使用了
route
裝飾器來裝飾了hello_world()
這個(gè)裝飾器的主要作用就是告訴flask應(yīng)用哪個(gè)路徑被訪問的時(shí)候執(zhí)行下面的函數(shù),這個(gè)函數(shù)的返回值就是我們在瀏覽器中看到的頁面
下面的內(nèi)容則是為了我們可以直接執(zhí)行這個(gè)python文件所添加的內(nèi)容,這樣省去了在命令行設(shè)置環(huán)境變量和執(zhí)行的時(shí)間
上文在"優(yōu)雅端莊式"啟動(dòng)服務(wù)器時(shí),app.py是作為模塊被其他程序?qū)氲?,__name__就是這個(gè)模塊的名稱
"簡單粗暴式"則是直接執(zhí)行了這個(gè)文件,__name__就是"__main__"
眾所周知(不知道請自行百度關(guān)鍵詞"本地回環(huán)地址
")127.0.0.1
這個(gè)地址只能在我們自己的機(jī)器上使用,要想他人訪問我們的服務(wù)器就必須讓他人知道我們的ip地址
可以在windows命令行中使用ipconfig
命令來看到自己的ip地址

如果你的手機(jī)和電腦連接的是同一臺(tái)路由器的話你也許可以試試拿起手機(jī)去訪問這個(gè)地址,
請注意:這個(gè)測試服務(wù)器所使用的端口號為5000

訪問的同時(shí)請帶上它
Sorry,這樣直接訪問是訪問不到的

Q:如何才能讓別人也能訪問到這個(gè)地址
A:告訴服務(wù)器,你要讓哪些地址可以被訪問
怎么做呢?
使用命令行啟動(dòng)時(shí):
flask run --host="192.168.31.200"

那我想用簡單磁暴的啟動(dòng)方法怎么辦呢?
if __name__ == '__main__':
?? ?app.run(host="192.168.31.200")
這樣就搞定了
這樣只是監(jiān)聽了特定的ip地址可以被訪問,那如果我電腦上有多個(gè)ip呢?
更加加單磁暴的方法
flask run --host="0.0.0.0"
比著葫蘆畫瓢:
在代碼中添加
? ?app.run(host="0.0.0.0")
這樣你就可以在任何地方打開這個(gè)頁面了

如果我不想輸入這個(gè)煩人的端口號又該如何修改它呢?
眾所周知Http服務(wù)默認(rèn)端口號是80
我們將端口設(shè)置為80就可以拋棄它了
簡單粗暴式:
if __name__ == '__main__': ? ?# 執(zhí)行這個(gè)方法之后就會(huì)運(yùn)行我們的測試服務(wù)器了 ? ?app.run(host="0.0.0.0", port=80)
比葫蘆畫瓢式:
flask run --host=0.0.0.0 --port=80
先停一下
雖然flask被稱為"微"框架,但是實(shí)際上flask中的內(nèi)容是非常非常多的.我們也可以使用圍繞flask開發(fā)的一些擴(kuò)展來增強(qiáng)flask的功能
這些內(nèi)容不是一句兩句可以講得完的,我們需要更多的時(shí)間去了解它們
所有,今天就先介紹到這里
小結(jié):今天夠干啥了?
今天主要是建立起了flask開發(fā)環(huán)境,安裝了flask框架,介紹了flask的最小應(yīng)用是怎樣構(gòu)成的,然后學(xué)會(huì)了更改flask應(yīng)用監(jiān)聽的ip地址和端口號
下次,我會(huì)介紹一下flask的路由和模板的使用