最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Flask搭建虛擬環(huán)境并運(yùn)行第一個(gè)flask程序

 更新時(shí)間:2021年04月20日 10:22:28   作者:Gorit  
這篇文章主要介紹了Flask搭建虛擬環(huán)境并運(yùn)行第一個(gè)flask程序,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

以下操作均在 windows 環(huán)境下進(jìn)行,我使用的 Python 版本是 3.7.1

一、搭建虛擬環(huán)境

1.1 使用 pipenv 搭建虛擬環(huán)境

當(dāng)然也可以使用 virtualenv,但是這個(gè)虛擬環(huán)境經(jīng)常安裝不上,這里給大家介紹另一種虛擬環(huán)境的安裝方式,我使用的 cmd 命令進(jìn)行下列的操作

安裝pipenv: pip install pipenv

創(chuàng)建項(xiàng)目運(yùn)行的目錄: mkdir app

進(jìn)入該目錄: cd app

安裝環(huán)境依賴:pipenv install

進(jìn)入虛擬環(huán)境:pipenv shell

在這里插入圖片描述

6. 查看當(dāng)前的 python 包:pip list

在這里插入圖片描述

1.2 為虛擬環(huán)境安裝其他的包

我們要使用 flask,所以使用如下命令即可:pipenv install flask,如果有其他需要,比如安裝 requests, pumysql 等等命令都是和上面一樣的

1.3 pipenv 命令一覽表

命令 功能
pipenv install 初始化虛擬環(huán)境
pipennv 進(jìn)入虛擬環(huán)境
pipenv install xxx (uninstall xxx) 為虛擬環(huán)境安裝(刪除)包
exit 退出虛擬環(huán)境
pipenv graph 查看包之間的依賴關(guān)系

二、在開發(fā)工具中設(shè)置虛擬環(huán)境

我使用的開發(fā)工具是 Pycharm 社區(qū)版的

2.1 查找 虛擬環(huán)境的路徑

這里我們要輸入這個(gè)命令查看 pipenv 的路徑:pipenv --venv , 我的是安裝在了 如下的位置

在這里插入圖片描述 

2.2 在開發(fā)工具中配置虛擬環(huán)境

然后打開 pycharm 的設(shè)置中,找到 setting

在這里插入圖片描述

然后找到 Python 解釋器,添加虛擬環(huán)境,找到我們剛才查到的路徑,添加即可

在這里插入圖片描述 

三、第一個(gè) flask 程序

3.1 運(yùn)行第一個(gè) flask 應(yīng)用程序

我們只需要三句話就可以實(shí)現(xiàn)一個(gè)最簡單的 flask 應(yīng)用程序

#!/usr/bin/python
# -*- coding: utf-8 -*-
#file: app.py
#@author: Gorit
#@contact: gorit@qq.com
#@time: 2020/2/26 9:08

from flask import Flask

app = Flask(__name__) # 實(shí)例化 flask , __name__ 會(huì)作為 app 核心的一個(gè)標(biāo)識(shí),這個(gè)可以為任意的字符串

@app.route('/hello') # 使用路由,給 hello 函數(shù)定義一個(gè)路由,然后游覽器通過http 請(qǐng)求得到相對(duì)應(yīng)的數(shù)據(jù)
def hello(): # hello 是視圖函數(shù),也是 mvc 中的 controller
    return "Hello World"

app.run()

然后我們?cè)谔摂M環(huán)境中,輸入 python app.py ,就可以在 http://127.0.0.1:5000 中啟動(dòng)我們的 flask 應(yīng)用程序,但是打開之后發(fā)現(xiàn)啥也沒有,這是因?yàn)?,我們?cè)诔绦蛑性O(shè)置了路由,所以我們要把路徑改成 http://127.0.0.1:5000/hello ,然后就可以在網(wǎng)頁找那個(gè)看到 hello world 字符串了

3.2 flask 中路由的重定向機(jī)制

還是復(fù)用上面的一段代碼,我們做一個(gè)小小的變動(dòng)

from flask import Flask
app = Flask(__name__) 

@app.route('/hello/') # 我們?cè)诼酚蛇@里多加入一個(gè)斜杠
def hello(): 
    return "Hello World"

app.run()

然后我們正常運(yùn)行

在這里插入圖片描述

我們把路徑改一下: 127.0.0.1:5000/hello ,然后回車我們發(fā)現(xiàn)頁面跳動(dòng)了一下,就變成了正常的狀態(tài)

在這里插入圖片描述

我們打開 F12 開發(fā)者工具,找到 network 選項(xiàng),我們發(fā)現(xiàn)這里產(chǎn)生了兩個(gè)網(wǎng)絡(luò)請(qǐng)求

在這里插入圖片描述

經(jīng)過查閱資料,也就是說,我們輸入 /hello 會(huì)被 Python flask 做永久重定向處理

3.3 另一種路由注冊(cè)的方式

我們使用 app.route("/hello"),作為訪問的界面,但是我們使用 ctrl + 鼠標(biāo)左鍵點(diǎn)擊 route,可以查看它的源碼,route 是作為裝飾器被使用的

在這里插入圖片描述

重點(diǎn)在下面的實(shí)現(xiàn)方式,路由的核心實(shí)際上是通過設(shè)置 add_url_rule(..) 路由規(guī)則實(shí)現(xiàn)的

在這里插入圖片描述

所以我們也可以使用另一種方法,設(shè)置路由,使用起來也比較容易,第一個(gè)參數(shù),設(shè)置路徑,第二參數(shù),指定視圖函數(shù),也就是 hello()

from flask import Flask
app = Flask(__name__)

# @app.route('/hello/')
def hello(): 
    return "Hello World"

app.add_url_rule('/hello',view_func=hello)

if __name__ == '__main__': 
    app.run()

第二種使用的情況一般在基于類的視圖使用比較多,也就是我們使用 面向?qū)ο蟮姆绞骄帉?flask 應(yīng)用程序

3.4 flask 改變運(yùn)行方式

app.run() 中有三個(gè)參數(shù),我們一起改變

  • 開啟 debug 模式 (這樣flask 就會(huì)自動(dòng)重啟服務(wù)器了,不用我們手動(dòng)重啟服務(wù)器)
  • 指定啟動(dòng)端口 (默認(rèn)端口是 5000,我們可以手動(dòng)修改端口了)
  • 改變主機(jī) (默認(rèn)是 127.0.0.1,如果要掛在服務(wù)器上,可以把 host 改成 0.0.0.0,然后關(guān)閉防火墻,這樣外網(wǎng)就可以看到了)
from flask import Flask
app = Flask(__name__)

@app.route('/hello')
def hello(): 
    return "Hello World"

if __name__ == '__main__': 
    app.run(host="localhost", debug=True,port=9999)

然后運(yùn)行 http://localhost:9999/hello

然后就可以看到內(nèi)容了

3.5 我們想看到 html 標(biāo)簽要怎么辦呢?

我們嘗試一下把 hello 視圖函數(shù)中,返回的內(nèi)容改成 html 標(biāo)簽試試看看有效果嗎?

from flask import Flask
app = Flask(__name__)

@app.route('/hello/')
def hello(): 
    return "<html></html>"

if __name__ == '__main__': 
    app.run()

實(shí)際上它什么都不會(huì)顯示,這是為什么呢?這是一個(gè)請(qǐng)求頭的問題。

Flask 請(qǐng)求頭的內(nèi)容包括

  • status code
  • content-type http headers

因?yàn)檎?qǐng)求頭中 content-type 已經(jīng)指定了值,所以 html 標(biāo)簽無法像 字符串那樣顯示,這個(gè)時(shí)候我們就需要改變請(qǐng)求頭的信息,我們可以這么做

from flask import Flask,make_response
app = Flask(__name__)

@app.route('/hello')
def hello():
    # 手動(dòng)創(chuàng)建 response
    headers = {
        "content-type": "text/html",  # plain 當(dāng)成普通的字符串,plain 改后才能 html 就可以正常的顯示 html 標(biāo)簽的內(nèi)容
    }
    return '<html><body><font color="red">你好,世界</font></body></html>', 200, headers

if __name__ == '__main__':
    app.run()

ok 這樣就能正常顯示我們的 html 標(biāo)簽中的內(nèi)容,但是字體不對(duì),這就是編碼格式的問題了

在這里插入圖片描述

其他類型的

  • content-type: “text/plain” 將返回的數(shù)據(jù)當(dāng)成字符串
  • “content-type”:“application/json” 使用 api, 指定返回 json 格式的數(shù)據(jù)

 3.6 重定向的妙用

我們可以在 headers 中加入 location 參數(shù),可以是用戶加載某指定路徑的時(shí)候,自動(dòng)跳轉(zhuǎn)到其他的頁面

from flask import Flask,make_response
app = Flask(__name__)
app.config.from_object('config')

@app.route('/hello')
def hello():
    headers = {
        "content-type": "text/plain",  # plain 當(dāng)成普通的字符串
        # "content-type":"application/json"  使用 api, 指定返回 json 格式的數(shù)據(jù)
        "location": "https://www.bing.com"
    }
    # 同樣實(shí)現(xiàn) 跳轉(zhuǎn)效果,控制響應(yīng)狀態(tài)碼
    return '<html></html>', 301, headers

if __name__ == '__main__':
    app.run()

到此這篇關(guān)于Flask搭建虛擬環(huán)境并運(yùn)行第一個(gè)flask程序的文章就介紹到這了,更多相關(guān)Flask搭建環(huán)境內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • jupyter notebook清除輸出方式

    jupyter notebook清除輸出方式

    這篇文章主要介紹了jupyter notebook清除輸出方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-04-04
  • Python結(jié)合spaCy?進(jìn)行簡易自然語言處理

    Python結(jié)合spaCy?進(jìn)行簡易自然語言處理

    這篇文章主要為大家介紹了Python結(jié)合spaCy進(jìn)行簡易自然語言處理詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-06-06
  • 下載安裝好python后想查看python安裝位置的幾種方法

    下載安裝好python后想查看python安裝位置的幾種方法

    這篇文章主要介紹了在Windows系統(tǒng)中查看Python路徑和版本的幾種方法,并提供了一個(gè)清除命令行窗口的技巧,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2025-03-03
  • python入門之語言基礎(chǔ)

    python入門之語言基礎(chǔ)

    這篇文章主要介紹了Python入門之基礎(chǔ)語法詳解,文中有非常詳細(xì)的代碼示例,對(duì)正在學(xué)習(xí)python的小伙伴們有很大的幫助喲,需要的朋友可以參考下
    2021-10-10
  • 自動(dòng)在Windows中運(yùn)行Python腳本并定時(shí)觸發(fā)功能實(shí)現(xiàn)

    自動(dòng)在Windows中運(yùn)行Python腳本并定時(shí)觸發(fā)功能實(shí)現(xiàn)

    講一下在Python中寫好了一個(gè)腳本之后,怎么自動(dòng)雙擊一個(gè)程序自動(dòng)就跑起來。以及,怎么在Windows 10中設(shè)計(jì)定期定時(shí)觸發(fā)并跑腳本,有需要的朋友可以參考下
    2021-09-09
  • Pytorch搭建YoloV5目標(biāo)檢測平臺(tái)實(shí)現(xiàn)過程

    Pytorch搭建YoloV5目標(biāo)檢測平臺(tái)實(shí)現(xiàn)過程

    這篇文章主要為大家介紹了Pytorch搭建YoloV5目標(biāo)檢測平臺(tái)實(shí)現(xiàn)過程,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-04-04
  • 使用Python的turtle模塊繪制櫻花樹的代碼示例

    使用Python的turtle模塊繪制櫻花樹的代碼示例

    Python的turtle模塊是一個(gè)直觀的圖形化編程工具,讓用戶通過控制海龜在屏幕上的移動(dòng)來繪制各種形狀和圖案,在接下來的文章中,我將通過一個(gè)生動(dòng)的例子——繪制一幅櫻花樹圖畫——來深入探討turtle模塊的實(shí)用性,需要的朋友可以參考下
    2024-04-04
  • 在pytorch中計(jì)算準(zhǔn)確率,召回率和F1值的操作

    在pytorch中計(jì)算準(zhǔn)確率,召回率和F1值的操作

    這篇文章主要介紹了在pytorch中計(jì)算準(zhǔn)確率,召回率和F1值的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-05-05
  • PyQt5每天必學(xué)之滑塊控件QSlider

    PyQt5每天必學(xué)之滑塊控件QSlider

    這篇文章主要為大家詳細(xì)介紹了PyQt5每天必學(xué)之滑塊控件,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-04-04
  • Python設(shè)計(jì)模式中的結(jié)構(gòu)型適配器模式

    Python設(shè)計(jì)模式中的結(jié)構(gòu)型適配器模式

    這篇文章主要介紹了Python設(shè)計(jì)中的結(jié)構(gòu)型適配器模式,適配器模式即Adapter?Pattern,將一個(gè)類的接口轉(zhuǎn)換成為客戶希望的另外一個(gè)接口,下文內(nèi)容具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-02-02

最新評(píng)論

新巴尔虎左旗| 湖北省| 梧州市| 固阳县| 阳春市| 苏尼特右旗| 祁东县| 屏山县| 乌什县| 舟曲县| 泽库县| 富顺县| 土默特右旗| 张掖市| 淳化县| 蓬安县| 梨树县| 潼关县| 山丹县| 和龙市| 临猗县| 望城县| 昌图县| 元朗区| 安顺市| 辽阳县| 通海县| 缙云县| 磐石市| 夹江县| 蕲春县| 新泰市| 涪陵区| 合水县| 鹤山市| 金川县| 定兴县| 海晏县| 保亭| 闽清县| 海丰县|