iT邦幫忙

第 11 屆 iT 邦幫忙鐵人賽

DAY 2
0
Modern Web

慢慢帶你了解Flask系列 第 2

慢慢帶你了解Flask - Day2 Flask的URL

大家好,我是長風青雲。
今天是鐵人賽第二天,昨天我說到要說flask_test_1.py 也就是今天的主題 ── URL。
那我們就先來了解一下flask_test_1.py程式碼所代表的意義吧。

先上完整程式碼再逐步說明

from flask import Flask

app = Flask(__name__)

@app.route("/")
def test():
	return "Hello World!"

if __name__ == "__main__":
	app.run(debug=True)

from flask import Flask
將flask中的Flask import 進來 以供使用
app=Flask(__name__)
創建一個Flask的 instance
@app.route("/")
告訴你怎樣的url可以call怎樣的function
def test():
就是一個function的名稱 上方的裝飾器會call他
return “Hello World”
將文字呈現於介面( 明天會說return別的,不再是字串 )
if __name__ == "__main__":
如果這個程式碼是主要跑的程式的話才會執行,換言之,如果他是被別人用來 import 的py檔 那他不會進來
app.run(debug=True)
就是執行的意思,debug的意思是如果你更改程式碼並儲存,那他將會重啟,變為你剛才更新後的樣子。
(當然是要你在更改的時候同時執行哈哈哈)

好,現在應該都理解flask_test_1.py的內容了,現在我們來變型吧。

from flask import Flask

app = Flask(__name__)

@app.route("/Flask")
def flask():
	return "Hello Flask!"

@app.route("/")
def test():
	return "Hello World!"

if __name__ == "__main__":
	app.run(debug=True)

這樣當我們去到 127.0.0.1:5000/Flask時將會是以下畫面
https://ithelp.ithome.com.tw/upload/images/20190902/20120116V8ZyBpzXgR.png

還有一種URL,是會依照輸入改變的,代碼如下:

from flask import Flask

app = Flask(__name__)

@app.route("/<name>")
def flask(name):
	return "Hello "+name+"!"

@app.route("/")
def test():
	return "Hello World!"

if __name__ == "__main__":
	app.run(debug=True)

然後到瀏覽器輸入127.0.0.1:5000/ (你的名字)則會出現下方圖片顯示的模樣
https://ithelp.ithome.com.tw/upload/images/20190902/201201162GjjiPPmyU.png
再說說其實上方的兩個function是可以合併的!

from flask import Flask

app = Flask(__name__)

@app.route("/")
@app.route("/<name>")
def test(name=None):
	if name==None:
		return "Hello World!"
	return "Hello "+name+"!"

if __name__ == "__main__":
	app.run(debug=True)

https://ithelp.ithome.com.tw/upload/images/20190902/20120116m2MGCl7DLp.png

好了~大家是不是覺得Flask既簡單,又好懂呢?
但只有文字是不是很醜?
明天我們將會進入使用HTML和CSS作為UI而我們的Flask退到幕後變為後端的樣子。
https://ithelp.ithome.com.tw/upload/images/20190903/20120116iuDZeF4MJa.png


上一篇
慢慢帶你了解Flask - Day1 前言和Flask安裝
下一篇
慢慢帶你了解Flask - Day3 使用HTML模板和重新導向
系列文
慢慢帶你了解Flask30

1 則留言

0
阿瑜
iT邦新手 4 級 ‧ 2019-09-03 15:19:07

簽到#2
看完了 真的是清楚明瞭呢 !!! 滿好玩的感覺
那 如果我port 要開 8787 是不是也可以 ?! (我是調皮的老人)
好像你前一篇有說要怎麼設定 XD

清楚的原因應該是因為很淺 XD
只要有稍微學過的都會看得懂
我們還不老!只是奔....不能說不能說,說了心痛
永遠19歲,當個永遠的大一新鮮人~

阿瑜 iT邦新手 4 級 ‧ 2019-09-04 01:16:46 檢舉

No problem !

我要留言

立即登入留言