国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

在Docker上部署Python的Flask框架的教程

2020-02-23 00:36:05
字體:
供稿:網(wǎng)友

本文中,我將嘗試展示用Docker開發(fā)python應(yīng)用(主要是Web應(yīng)用)的可行方法。雖然我本人專注于Python的Flask微框架,但本文目的是演示如何通過Docker更好地開發(fā)和共享應(yīng)用程序,(由任何語言和框架開發(fā)的應(yīng)用程序)。Docker通過封裝依賴項,大大減少了開發(fā)環(huán)境和正式產(chǎn)品的差距。

大多數(shù)Python開發(fā)人員在開發(fā)中使用virtualenv。它提供了一種易用的機(jī)制讓應(yīng)用程序使用自己專用的依賴項,這些依賴項可能與在其它應(yīng)用程序或操作系統(tǒng)存在沖突(尤其是不同的Pyhton版本,還有不同的庫版本等等)。個人而言,我對virtualenv一直沒有太大興趣,原因如下:

        我經(jīng)常忘記啟用它,或者在切換工程時忘記切換它,這會遇到含糊的出錯信息,另人倍感困惑。     它無法提供“純粹的”隔離,只能是Python級別的隔離(系統(tǒng)庫和非python的依賴項仍然會出問題)。     我通常不想在正式產(chǎn)品中運行它,這就意味著在開發(fā)環(huán)境和正式產(chǎn)品的不一致。     它讓人感覺有點“黑客”作法:它是依靠修改腳本和設(shè)置新路徑實現(xiàn)的。

( 查看 pythonrants的這篇文章 了解更多為什么你可能不想用virtualenv )

那么,怎么做Docker才能變得更好呢?Docker本質(zhì)上提供了非常輕量化的VMs(在說法上可以稱為“容器”),我們可以使用其創(chuàng)建一個高標(biāo)準(zhǔn)隔離并能大大減少失配的開發(fā)和產(chǎn)品環(huán)境。(如果你不熟悉Docker,卻還想學(xué)習(xí)更多,你可以查看我在愛丁堡技術(shù)座談會上介紹Docker的談話)。

當(dāng)我們建立一個小型的可視化Web APP,我自己和Mark Coleman使用這種方法(文檔在這)。這(里面)劃出了一個基本鏡像安裝Python 2.7,還有一些Flask管理以及PostgreSQL的內(nèi)容。我會依據(jù)這個鏡像去開發(fā)一個hello world的Web應(yīng)用。我假設(shè)你是在Linux上開發(fā),并且你已經(jīng)有g(shù)it,還安裝了Docker,MacOS的指令應(yīng)該非常類似。通過克隆和建立基本鏡像開始:
 

$ git clone https://github.com/mrmrcoleman/python_webapp$ docker build -t python_webapp .

現(xiàn)在,我們需要為容器中添加一些代碼并詳細(xì)寫明。我們打算新建一個僅僅指向Docker鏡像的項目來完成這項工作,而不是直接修改之前的項目。

創(chuàng)建一個具有下列結(jié)構(gòu)的新項目:

  代碼如下:
├── Dockerfile
 ├── example_app
 │   ├── app
 │   │   ├── __init__.py
 │   │   └── views.py
 │   └── __init__.py
 ├── example_app.wsgi 

或者克隆該地址的示例項目: https://github.com/amouat/example_app.git

在example_app/app/_init_.py中寫入:

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 万安县| 绥江县| 东平县| 安陆市| 北海市| 墨脱县| 苏尼特右旗| 社旗县| 綦江县| 广宗县| 黎川县| 普安县| 谢通门县| 清苑县| 辛集市| 墨脱县| 陆川县| 濉溪县| 松原市| 灌阳县| 上高县| 株洲县| 乡城县| 建阳市| 利津县| 肥城市| 枣阳市| 长丰县| 和静县| 阿图什市| 阿拉善右旗| 桂东县| 镇远县| 怀宁县| 临沧市| 新疆| 吐鲁番市| 霍邱县| 贺州市| 镇远县| 苍梧县|