python上怎么啟動web服務

這篇文章主要介紹“python上怎么啟動web服務”,在日常操作中,相信很多人在python上怎么啟動web服務問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”python上怎么啟動web服務”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

目前成都創(chuàng)新互聯(lián)已為千余家的企業(yè)提供了網(wǎng)站建設、域名、網(wǎng)絡空間、成都網(wǎng)站托管、企業(yè)網(wǎng)站設計、武鄉(xiāng)網(wǎng)站維護等服務,公司將堅持客戶導向、應用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。

啟動web服務

導入flask中的Flask模塊后使用Flask初始化web服務對象app = Flask(__name__)

這個app就是web服務的對象,接下來只要調用app.run()方法就可以啟動web服務器了,就是這么簡單

啟動log如下

/home/yukiti2007/anaconda3/envs/tf2/bin/python /home/yukiti2007/IdeaProjects/sample/python/flask/router.py
 * Serving Flask app "router" (lazy loading)
 * Environment: production
   WARNING: This is a development server. Do not use it in a production deployment.
   Use a production WSGI server instead.
 * Debug mode: off
 * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)

可以看出flask默認是在5000端口啟動web服務的

從log中的警告可以看出,這種啟動方式只是在開發(fā)階段使用,不推薦在生產(chǎn)環(huán)境中使用

如果是生產(chǎn)環(huán)境,建議使用WSGI server啟動服務


app.run()方法有5個參數(shù)

參數(shù)名意義默認值
host監(jiān)聽的主機ip地址127.0.0.1(localhost)
portweb服務啟動端口5000
debug是否以debug模式啟動None
load_dotenv是否加載環(huán)境變量,默認會加載以.env.flaskenv結尾的文件True
options其他選項(因為flask底層是通過Werkzeug實現(xiàn)的,所以這些選項會傳遞給Werkzeug,詳細信息需要查看werkzeug.serving.run_simple方法)-

如果不想使用5000端口啟動服務,只需要加上參數(shù)prot=8080就可以以8080端口啟動服務了

另外,由于默認的監(jiān)聽ip地址是127.0.0.1,所以啟動的服務只能本機訪問

如果需要在其他機器上也能訪問,需要將監(jiān)聽端口設為0.0.0.0

下面以以下參數(shù)啟動服務app.run(host="0.0.0.0",port=8080,debug=True),啟動log如下

/home/yukiti2007/anaconda3/envs/tf2/bin/python /home/yukiti2007/IdeaProjects/sample/python/flask/router.py
 * Serving Flask app "router" (lazy loading)
 * Environment: production
   WARNING: This is a development server. Do not use it in a production deployment.
   Use a production WSGI server instead.
 * Debug mode: on
 * Running on http://0.0.0.0:8080/ (Press CTRL+C to quit)
 * Restarting with stat
 * Debugger is active!
 * Debugger PIN: 249-050-533

添加路由

flask添加路由有2種方式

  1. 使用裝飾器route()

  2. 使用函數(shù)add_url_rule()

下面我們使用兩種方式添加兩個路由試試

# 在方法上添加裝飾器
@app.route("/hello1")
def hello_world1():
    return "hello_world1"

# 使用函數(shù)添加
def hello_world2():
    return "hello world2"
app.add_url_rule("/hello2", view_func=hello_world2)

訪問成功,同時也自動打印了訪問log

192.168.140.1 - - [08/Aug/2019 16:23:30] "GET /hello2 HTTP/1.1" 200 -
192.168.140.1 - - [08/Aug/2019 16:23:39] "GET /hello1 HTTP/1.1" 200 -

python上怎么啟動web服務


但是這樣添加的路由只支持GET方式的請求,通過POST方式訪問的話會拒絕響應

192.168.140.1 - - [08/Aug/2019 16:33:26] "POST /hello1 HTTP/1.1" 405 -
192.168.140.1 - - [08/Aug/2019 16:33:44] "POST /hello2 HTTP/1.1" 405 -

python上怎么啟動web服務

可以通過添加method的方式來制定響應請求的Method

# 裝飾器方式
@app.route("/hello1", methods=["GET", "POST"])

# 使用函數(shù)方式
app.add_url_rule("/hello2", view_func=hello_world2, methods=["GET", "POST"])

重啟服務以后再次以POST方式嘗試訪問,響應成功

192.168.140.1 - - [08/Aug/2019 16:40:29] "POST /hello1 HTTP/1.1" 200 -
192.168.140.1 - - [08/Aug/2019 16:40:50] "POST /hello2 HTTP/1.1" 200 -

python上怎么啟動web服務

完整代碼已經(jīng)上傳到github

到此,關于“python上怎么啟動web服務”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續(xù)學習更多相關知識,請繼續(xù)關注創(chuàng)新互聯(lián)網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬嵱玫奈恼拢?/p>

分享題目:python上怎么啟動web服務
標題URL:http://muchs.cn/article34/ihdise.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供企業(yè)網(wǎng)站制作網(wǎng)站內(nèi)鏈、云服務器、定制開發(fā)、手機網(wǎng)站建設、微信小程序

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

搜索引擎優(yōu)化