欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

Django或者Flask創建Python虛擬環境啟動第一個Hello

系統 1712 0

前言

剛開始開發Web的時候,沒太在意隔離虛擬環境,用了系統的那一套,Python2.7版本是系統自帶的,雖說明年就結束了,但是現在開發都會有一套3.x以上的環境,即使你開發不注意,你部署的時候總歸是要隔離出來的。
1.方便隔離,不同環境編寫測試
2.方便遷移, pip freeze 到出包文件依賴,隨后提交管理和遷移都很方便

virtualenv

前提是你有兩套Python

            
              mikejingdeMacBook-Pro:~ MKJ$ 
              
                which
              
               python
/usr/bin/python
mikejingdeMacBook-Pro:~ MKJ$ 
              
                which
              
               python3
/usr/local/bin/python3

            
          

Python將所有三方包托管到一個公共倉庫,任何人都能從這個公共倉庫下載并安裝所有的三方包。Python將三方包公共倉庫命名為PyPI以表示Python Package Index的縮寫(被一些人戲稱為"cheese shop")。從PyPI上安裝三方包非常簡單,Python專門提供了一個名為pip的工具來解決這個問題(Python2.7中不含pip工具,需要單獨安裝)

            
              mikejingdeMacBook-Pro:~ MKJ$ pip list
-bash: pip: 
              
                command
              
               not found
mikejingdeMacBook-Pro:~ MKJ$ pip3 list
Package    Version
---------- -------
pip        18.1   
setuptools 40.5.0 
wheel      0.32.2 

            
          

可以看到Python2.7不會自帶pip,3的話就會自帶上面三個包。
為了解決維護不同應用程序對應不同版本的問題,Python使用了虛擬環境的概念。 虛擬環境是Python解釋器的完整副本。在虛擬環境中安裝三方包時只會作用到虛擬環境,全局Python解釋器不受影響。 那么,就為每個應用程序安裝各自的虛擬環境吧。


首先我們看下是否在各自環境下有安裝 virtualenv

            
              bogon:~ MKJ$ pip list
bogon:~ MKJ$ pip3 list   
Package    Version
---------- -------
pip        18.1   
setuptools 40.5.0 
virtualenv 16.6.1 
wheel      0.32.2 
bogon:~ MKJ$ 

            
          

沒有的話

            
              pip 
              
                install
              
               virtualenv

            
          

安裝虛擬環境方法一(Django演示 + virtualenv)

1.創建虛擬環境目錄

            
              
                mkdir
              
               flask_project

              
                cd
              
               flask_project

            
          

2.到底是副本出Python2還是Python3虛擬環境
你想創建哪套虛擬環境可以根據 -p 指定,首先可以用 which python , which python3 拿到執行文件目錄

            
              virtualenv venv  
              
                # 該方法默認用系統2.7創建出虛擬環境
              
              
virtualenv -p /usr/local/bin/python3 venv 
              
                # 指定Python3創建出虛擬環境
              
            
          

3.激活/關閉

            
              
                # 激活
              
              
                source
              
               venv/bin/activate  

              
                # 或者  
              
              
                # . venv/bin/activate
              
              
                # 激活后此時你的終端前綴就變化了
              
              
                # deactivate 是關閉環境
              
            
          

4.以Django為例創建一個Hello world
退出后每次進去 venv 文件夾目錄,然后 . /venv/bin/activate 后啟動虛擬環境,隨后安裝
pip install django ,以下是虛擬環境下包,和全局的2.7或者3.x的不會有任何交叉,獨立的

            
              
                (
              
              venv
              
                )
              
               mikejingdeMacBook-Pro:django-project MKJ$ pip list
Package    Version
---------- -------
Django     2.2.2  
pip        19.1.1 
pytz       2019.1 
setuptools 41.0.1 
sqlparse   0.3.0  
wheel      0.33.4

            
          

這里這是簡單的寫個Django的Hello World,具體細節和為什么就不在這里說了,以后有空再寫博客出來介紹
5.啟動項目

            
              django-admin startproject mysite

            
          

6 .創建app

            
              python manage.py startapp blogs

            
          

7 .進入app模塊創建 urls.py

            
              
                from
              
               django
              
                .
              
              urls 
              
                import
              
               path

              
                from
              
              
                .
              
              
                import
              
               views

app_name 
              
                =
              
              
                "blogs"
              
              

urlpatterns 
              
                =
              
              
                [
              
              
    path
              
                (
              
              
                ''
              
              
                ,
              
               views
              
                .
              
              index
              
                ,
              
               name
              
                =
              
              
                'index'
              
              
                )
              
              
                ]
              
            
          

8 .編寫 views.py

            
              from django.shortcuts 
              
                import
              
               render
from django.http 
              
                import
              
               HttpResponse


              
                # Create your views here.
              
              

def index
              
                (
              
              request
              
                )
              
              :
    
              
                return
              
               HttpResponse
              
                (
              
              
                'Hello World'
              
              
                )
              
            
          

9 .blogs同級目錄下的mysite中編寫urls路由

            
              from django.contrib 
              
                import
              
               admin
from django.urls 
              
                import
              
               path, include


urlpatterns 
              
                =
              
              
                [
              
              
    path
              
                (
              
              
                'admin/'
              
              , admin.site.urls
              
                )
              
              ,
    path
              
                (
              
              
                'blogs/'
              
              , include
              
                (
              
              
                'blogs.urls'
              
              
                ))
              
              
                ]
              
            
          

10 .回到 manage.py 目錄下啟動服務

            
              python manage.py runserver

            
          

11.打開 127.0.0.1:8000/blogs
就能看到我們上面寫的第一個 Django編寫的Hello world

安裝虛擬環境二 (Flask演示 + Python3.4以上自帶創建環境)

Python版本低于3.4,默認是不支持一下方式創建虛擬環境
1.創建目錄

            
              
                mkdir
              
               flask-project

              
                cd
              
               flask-project

            
          

2.安裝虛擬環境

            
              python3 -m venv venv

            
          

使用這個命令來讓Python運行venv包,它會創建一個名為venv的虛擬環境。 命令中的第一個“venv”是Python虛擬環境包的名稱 ,第二個是要用于這個特定環境的虛擬環境名稱。 如果你覺得這樣很混亂,可以用你自定義的虛擬環境名字替換第二個venv。我習慣在項目目錄中創建了名為venv的虛擬環境,所以無論何時cd到一個項目中,都會找到相應的虛擬環境。

3.激活虛擬環境安裝Flask

            
              
                .
              
               venv/bin/activate 
              
                # 啟動
              
              
pip 
              
                install
              
               flask 
              
                # 安裝flask
              
            
          

4.創建Flask應用
應用程序是存在于包中的。 在Python中,包含__init__.py文件的子目錄被視為一個可導入的包。 當你導入一個包時, init .py會執行并定義這個包暴露給外界的屬性。

            
              
                mkdir
              
               app 
              
                # 創建應用文件夾
              
              
                cd
              
               app

              
                # 創建 __init__.py
              
              
from flask 
              
                import
              
               Flask

app 
              
                =
              
               Flask
              
                (
              
              __name__
              
                )
              
              

from app 
              
                import
              
               routes


              
                # 創建 routes.py
              
              
from app 
              
                import
              
               app

@app.route
              
                (
              
              
                '/'
              
              
                )
              
              
@app.route
              
                (
              
              
                '/index'
              
              
                )
              
              
def index
              
                (
              
              
                )
              
              :
    
              
                return
              
              
                "Hello, World!"
              
            
          

其一,這里有兩個實體名為app。 app包由app目錄和__init__.py腳本來定義構成,并在from app import routes語句中被引用。 app變量被定義為__init__.py腳本中的Flask類的一個實例,以至于它成為app包的屬性。

其二,routes模塊是在底部導入的,而不是在腳本的頂部。 最下面的導入是解決循環導入的問題,這是Flask應用程序的常見問題。 你將會看到routes模塊需要導入在這個腳本中定義的app變量, 因此將routes的導入放在底部可以避免由于這兩個文件之間的相互引用而導致的錯誤。

那么在routes模塊中有些什么? 路由是應用程序實現的不同URL。 在Flask中,應用程序路由的處理邏輯被編寫為Python函數,稱為視圖函數。 視圖函數被映射到一個或多個路由URL,以便Flask知道當客戶端請求給定的URL時執行什么邏輯。
函數上面的兩個奇怪的@app.route行是裝飾器, 這是Python語言的一個獨特功能。 裝飾器會修改跟在其后的函數。 裝飾器的常見模式是使用它們將函數注冊為某些事件的回調函數。 在這種情況下,@app.route修飾器在作為參數給出的URL和函數之間創建一個關聯。 在這個例子中,有兩個裝飾器,它們將URL /和/index索引關聯到這個函數。 這意味著,當Web瀏覽器請求這兩個URL中的任何一個時,Flask將調用該函數并將其返回值作為響應傳遞回瀏覽器。這樣做是為了在運行這個應用程序的時候會稍微有一點點意義。

5 .創建腳本
回到 flask-project ,創建一個manage.py的文件,加入

            
              
                from
              
               app 
              
                import
              
               app

            
          

Flask應用程序實例被稱為app,是app包的成員。from app import app語句從app包導入其成員app變量。

            
              flask-project/
 venv/
 app/
   __init__.py
   routes.py
 manage.py

            
          

6 .設置Flask環境變量

            
              
                export
              
               FLASK_APP
              
                =
              
              manage.py

            
          

7 .啟動

            
              
                (
              
              venv
              
                )
              
               mikejingdeMacBook-Pro:flask_project MKJ$ flask run
* 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
              
                )
              
            
          

8 .環境變量設置
上面的環境變量是臨時的,你如果喜歡可以每次設置,如果永久的話需要安裝如下
從 1.0 版本開始,Flask 允許你設置只會在運行flask命令時自動注冊生效的環境變量,要實現這點,你需要安裝 python-dotenv:

            
              
                (
              
              venv
              
                )
              
               $ pip 
              
                install
              
               python-dotenv

            
          

此時,在項目的根目錄下新建一個名為 .flaskenv 的文件,其內容是:

            
              FLASK_APP
              
                =
              
              manage.py

            
          

Pytharm 自動創建

Pytharm --- Preference --- Project.xxx --- Project Interpreter 就是我們工程虛擬環境的配置項

參考文檔
Flask文檔


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦?。。?/p>

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 久久99精品亚洲热综合 | 91视频免费观看高清观看完整 | 中文字幕网在线 | 国产69精品久久久久999小说 | 婷婷97狠狠的狠狠的爱 | 免费一级毛片麻豆精品 | 亚洲视频免费在线 | 偷拍小美女洗澡在线播放 | 天海翼一区 | 久久99深爱久久99精品 | av网站在线看 | 91精品国产777在线观看 | av免费在线观看国产 | 亚洲精品国产综合一线久久 | 黑丝在线播放 | 欧美区在线播放 | 国产午夜精品AV一区二区 | 欧美色无极 | 久久国产免费看 | 日韩 第一页 | 色狠狠成人综合网 | 日韩中文字幕在线视频 | avtom影院入口永久在线观看 | 国产成人免费视频网站高清观看视频 | 黄网站免费在线 | 欧洲精品在线视频 | 国产福利专区精品视频 | 婷婷视频网站 | 一级黄毛片 | 久久国产视频网 | 激情av免费看 | 午夜宫电影 | 国产精品日韩在线观看 | 亚洲播播播 | 久久国内精品自在自线400部o | 日本精品中文字幕有码 | 久久亚洲成人网 | 欧美日韩在线播放一区二区三区 | 黄色av.com | 国产二区在线播放 | 特片网久久 |