創(chuàng)建一個Python文件:hello.py
創(chuàng)新互聯(lián)專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于成都網(wǎng)站建設(shè)、網(wǎng)站設(shè)計、福貢網(wǎng)絡(luò)推廣、小程序定制開發(fā)、福貢網(wǎng)絡(luò)營銷、福貢企業(yè)策劃、福貢品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運營等,從售前售中售后,我們都將竭誠為您服務(wù),您的肯定,是我們大的嘉獎;創(chuàng)新互聯(lián)為所有大學(xué)生創(chuàng)業(yè)者提供福貢建站搭建服務(wù),24小時服務(wù)熱線:18982081108,官方網(wǎng)址:muchs.cnfrom flask import Flask app = Flask(__name__) #app是程序?qū)嵗?,一個項目只能有一個程序?qū)嵗鼲app.route('/') #路由裝飾器def hello_world(): #視圖函數(shù) return 'Hello World!' #返回一個字符串if __name__ == '__main__': app.run()1234567812345678
用python解釋器來運行
$ python hello.py * Running on http://127.0.0.1:5000/1212
首先,我們導(dǎo)入了 Flask 類。這個類的實例將會是我們的 WSGI 應(yīng)用程序
接下來,我們創(chuàng)建一個該類的實例,第一個參數(shù)是應(yīng)用模塊或者包的名稱。 如果你使用單
塊(如本例),你應(yīng)該使用 name ,因為模塊的名稱將會因其作為單獨應(yīng)用啟動還是作
塊導(dǎo)入而有不同( 也即是 ‘main’ 或?qū)嶋H的導(dǎo)入名)。這是必須的,這樣 Flask 才知道
去找模板、靜態(tài)文件等等。詳情見 Flask的文檔。
然后,我們使用 route() 裝飾器告訴 Flask 什么樣的URL 能觸發(fā)我們的函數(shù)。
這個函數(shù)的名字也在生成 URL 時被特定的函數(shù)采用,這個函數(shù)返回我們想要顯示在用戶瀏
的信息。
最后我們用 run() 函數(shù)來讓應(yīng)用運行在本地服務(wù)器上。 其中 if name ==’main‘: 確保服
只會在該腳本被 Python 解釋器直接執(zhí)行的時候才會運行,而不是作為模塊導(dǎo)入的時候。
關(guān)閉服務(wù)器,按 Ctrl+C。
# 修改調(diào)用 run() 的方法使你的服務(wù)器公開可用 app.run(host='0.0.0.0')123123
雖然 run() 方法適用于啟動本地的開發(fā)服務(wù)器,但是你每次修改代碼后都要手動重啟它。這樣并不夠
優(yōu)雅,而且 Flask 可以做到更好。如果你啟用了調(diào)試支持,服務(wù)器會在代碼修改后自動重新載入,并
在發(fā)生錯誤時提供一個相當(dāng)有用的調(diào)試器。就算出錯了,也不用重新啟動。
有兩種途徑來啟用調(diào)試模式。一種是直接在應(yīng)用對象上設(shè)置:
app.debug = True app.run()1212
另一種是作為 run 方法的一個參數(shù)傳入:
app.run(debug=True)11
兩種方法的效果完全相同。
這里是一些基本的例子:
@app.route('/') def index(): return 'Index'@app.route('/hello/') def hello(): return '<h2>Hello world!</h2>'12345671234567
客戶端(例如 Web 瀏覽器)把請求發(fā)送給 Web 服務(wù)器, Web 服務(wù)器再把請求發(fā)送給 Flask程序?qū)嵗?。程序?qū)嵗枰缹γ總€ URL 請求運行哪些代碼,所以保存了一個 URL 到Python 函數(shù)的映射關(guān) 系。處理 URL 和函數(shù)之間關(guān)系的程序稱為路由。
在 Flask程序中,定義路由使用 app.route修飾器,route()裝飾器把一個函數(shù)綁定到對應(yīng)的URL上。
函數(shù)的返回值叫響應(yīng),是客戶端接收到的內(nèi)容。如果客戶端是 Web 瀏覽器, 響應(yīng)就是顯示給 用戶查看的文檔。
像index()這樣的,稱為是視圖函數(shù)。視圖函數(shù)返回的響應(yīng)可以是包含html的簡單字符串,也可以是復(fù)雜的表單。
@app.route('/user/<name>')def showUserName(name): return "User %s" %name@app.route('/post/<int:post_id>') def showPostId(post_id): return "Post %d" %post_id12345671234567
很多URL地址都包含可變部分。flask中,只需在route修飾器中使用特殊的句法
尖括號的內(nèi)容就是動態(tài)部分,任何能匹配靜態(tài)部分的URL都會映射到這個路由上。調(diào)用視圖函數(shù)的時候,flask會將動態(tài)部分作為參數(shù)傳入函數(shù)中。
路由中的動態(tài)部分默認(rèn)是使用字符串,不過也可以使用類型定義。。例如,路由 /user/只會匹配動 態(tài)片段 id 為整數(shù)的 URL。 Flask 支持在路由中使用 int、 float 和 path 類型。path 類型也是字符串,但不把斜線視作分隔符,而將其當(dāng)作動態(tài)片段的一部分。
變量規(guī)則就是處理動態(tài)信息的。
【注意】
app.route()函數(shù)中尖括號里面的是變量名,必須和視圖函數(shù)的形參名一致
如果是int或者float類型,不能直接return。必須轉(zhuǎn)換為字符串格式才可以,否則會報錯: TypeError: ‘int’ object is not callable
用redirect()函數(shù)把用戶重定向到其他地方
用abort()函數(shù)放棄請求并返回錯誤代碼
@app.route('/redir/') def redir(): return redirect('/login/')@app.route('/login/') def login(): abort(401)1234567812345678
用戶會從/redir/重定向到一個不能訪問的頁面 (401 意味著禁止訪問)。
用url_for()來給指定的函數(shù)生成url。它接受函數(shù)名作為第一個參數(shù),也接受對應(yīng)URL規(guī)則的變量部分的命名參數(shù)。
@app.route('/world/') def world(): # return redirect('/hello/') # return redirect(url_for('hello')) # return redirect(url_for('showUserName',name = 'liusheng')) return redirect(url_for('showPostId', post_id = 100)) # 注意這里的100可以是字符串也可以是整型12345671234567
使用url_for()生成 URL 的好處:
- 允許一次性修改 URL,而不用到處邊找邊改。
- URL 構(gòu)建會轉(zhuǎn)義特殊字符和 Unicode 數(shù)據(jù),免去你很多麻煩。
Flask-Script是一個Flask擴展,為Flask程序添加了一個命令行解析器。Flask-Script 自帶了 一組常用選項,而且還支持自定義命令。
Flask-Script 擴展使用 pip 安裝:
(venv) $ pip install flask-script11
把命令行解析功能添加到 hello.py 程序中時需要修改的地方:
from flask_script import Manager manager = Manager(app)if __name__ == '__main__': manager.run()1234512345
這樣修改之后,程序可以使用一組基本命令行選項。
我們運行 python hello.py runserver 來啟動 Web 服 務(wù)器。
還有很多選項來代替app的debug和host屬性:
--host HOST 設(shè)置host為 HOST --port PORT 設(shè)置port為 PORT-d 設(shè)置以debug模式運行而非run模式 -r 設(shè)置自動重新載入(app.debug為True)12341234
命令:
python hello.py runserver -d -r --host 0.0.0.011
創(chuàng)新互聯(lián)www.cdcxhl.cn,專業(yè)提供香港、美國云服務(wù)器,動態(tài)BGP最優(yōu)骨干路由自動選擇,持續(xù)穩(wěn)定高效的網(wǎng)絡(luò)助力業(yè)務(wù)部署。公司持有工信部辦法的idc、isp許可證, 機房獨有T級流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確進(jìn)行流量調(diào)度,確保服務(wù)器高可用性。佳節(jié)活動現(xiàn)已開啟,新人活動云服務(wù)器買多久送多久。
網(wǎng)頁標(biāo)題:flask-帶你快速入門-創(chuàng)新互聯(lián)
本文來源:http://muchs.cn/article36/deiisg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供建站公司、自適應(yīng)網(wǎng)站、企業(yè)網(wǎng)站制作、微信公眾號、云服務(wù)器、外貿(mào)建站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容