一:虛擬環境介紹
黃色部分重點注意
虛擬環境與全域環境:
我們通過pip安裝了一個python庫,可能在編輯器中不能使用(如:pycharm,vscode…)這是因為:
通過pip安裝的庫默認一般安裝在全域環境中,而PyCharm一般會默認創建虛擬環境,所以兩者的環境不一致,導致安裝的包不能正常匯入使用,解決辦法有一般有2種:
?給PyCharm安裝虛擬環境,使庫安裝虛擬環境中
?將PyCharm的環境設定為全域環境,即我們通常使用的Python,設定為Python的安裝目錄即可:
如圖下 紅框即為全域變數:

安裝虛擬環境的原因:
?一般情況下,Python第三方庫安裝是直接通過pip install xxx的方式進行安裝的,這樣會使庫安裝在python全域環境中,
這樣做面臨的問題:如果用Flask 1.10寫了個網站,但是同時有一個Flask 0.9開發的專案需要開發維護,并且有可能Flask 1.10不再兼容Flask 0.9的一些語法,這就需要同時擁有Flask 1.10和Flask 0.9兩種不同環境,這時我們就需要通過虛擬環境來解決此類問題,
虛擬環境的安裝:
?python中虛擬化管理工具很多,最常用的是pipenv
pipenv的安裝:
?Windows下安裝:
pip install pipenv
?Mac下安裝
brew install pipenv
?Linux下安裝
pip install pipenv
虛擬環境創建前的準備:
虛擬環境默認會安裝到系統盤(C盤)下的當前用戶目錄下的== .virtualenvs 目錄下,如果想指定安裝到其他目錄,可以設定系統環境變數==,在系統變數中添加變數,變數名為WORKON_HOME,值為需要指定安裝的目錄(檔案夾)
名字可以自己取 自己可以找到的檔案夾
如圖所示:

虛擬環境的創建:
?WIN+R 輸入cmd進入:

?進入需要創建虛擬環境的檔案夾:

?安裝pipenv之后即可創建虛擬環境,創建虛擬環境使用命令pipenv shell 如圖所示:

?安裝完成后使用pip list命令,即可看到此虛擬環境安裝的庫

?虛擬環境安裝好之后,可在PyCharm中設定虛擬環境為當前創建的虛擬環境,即定位選擇虛擬環境下的python.exe可執行檔案,方法與前面相同,
pipfile與pipfile.lock
?在創建虛擬環境后,虛擬環境目錄下會生成pipfile檔案,內容如下:
[[source]]
name = "pypi"
url = "https://pypi.org/simple" # 在默認情況使用國外源下載庫會非常慢,可以指定國內pip源,
verify_ssl = true
[dev-packages] # 開發環境
[packages] # 生產環境
[requires] # Python版本
python_version = "3.7"
?pipfile.lock詳細記錄環境依賴,并且使用了Hash演算法以保證完整的對應關系,
?如果需要將安裝的庫記錄到Pipfile中,可以使用pip install --dev 庫名將庫安裝到開發環境,
?在虛擬環境中用run引數運行專案示例如下:
pipenv run python manage.py runserver
?pipenv有一個缺點:
?lock不穩定而且時間非常長,所以安裝包的時候記得加上==–skip-lock==,如下:
pipenv install django --skip-lock
?最后開發完成要提交到倉庫的時候再執行pipenv lock命令,
Flask的介紹
flask是一款非常流行的Python Web框架,誕生于2010年,作者是Armin Ronacher,這個專案最初只是作者在愚人節的一個玩笑,后來由于非常受歡迎,逐漸成為一個正式的專案,
flask自2010年發布第一個版本以來,大受歡迎,深得開發者的喜愛,并且在多個公司已經得到了應用,flask能如此流行的原因,可以分為以下幾點:
?微框架、簡潔,只做它需要做的,靈活度非常高,給開發者提供了很大的擴展性,
?Flask不會幫開發者做太多的決策,一切都可以按照自己的意愿進行更改,
?使用Flask開發資料庫的時候,具體是使用SQLAlchemy還是MongoEngine,選擇權完全掌握在開發者自己的手中,區別于Django,Django內置了非常完善和豐富的功能,并且如果想替換成開發者想要的,要么不支持,要么非常麻煩,
?把默認的Jinija2模板引擎替換成其他模板引擎都是非常容易的,
?Flask和相應的插件寫得很好,
?開發效率非常高,比如使用SQLAlchemy的ORM操作資料庫可以節省開發者書寫大量sql的時間,
我愛Flask的第一個程式:
# 從flask框架中匯入Flask類
from flask import Flask
# 傳入__name__初始化一個Flask實體
app = Flask(__name__)
# 裝飾器,將當前路由映射到指定函式
@app.route('/')
def hello_world():
return 'Hello World'
if __name__ == '__main__':
app.run()
?輸出結果:
* Serving Flask app "first" (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)
?1. 此時只需點擊圖中藍色網址即可看到輸出‘Hello World’
?2. 也可在在瀏覽器中打開http://127.0.0.1:5000/

?當再次回傳pycharm時,可以在開啟的服務狀態欄下看到請求的記錄,如:
127.0.0.1 - - [13/Oct/2020 19:19:45] "GET / HTTP/1.1" 200 -
127.0.0.1 - - [13/Oct/2020 19:19:45] "GET /favicon.ico HTTP/1.1" 404 -
?注意說明
?@app.route(’/’) :裝飾器映射URL和執行的函式,這個設定將URL映射到指定的函式上,例中指定當前路由為根目錄,如果為根目錄時也可以不寫 /,但是盡量寫上以示區別,
?app.run():是讓flask專案運行起來,可以指定主機號和埠號,
默認的host是127.0.0.1,port為5000,host=0.0.0.0可以讓其他電腦也能訪問到該網站,port可以指定訪問的埠,
有問題可以在評論指正,歡迎討論,謝謝大家!!
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/172394.html
標籤:其他
上一篇:Python之最簡單爬蟲
