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

Python?Flask?+?Redis?程序練習

 更新時間:2022年01月27日 08:55:58   作者:小葉柏杉  
這篇文章主要給大家分享Python?Flask?+?Redis?程序的練習,準備一個Python文件,名字為?app.py?提供一個web服務,可以訪問地址,返回一個Hello?Container?World!并且記錄訪問的次數,下面來看看有趣的練習過程吧

兩個容器,一個flask-demo,一個是redis-server
在一個自定義網絡bridge,相互ping,不需要知道ip,只用名字就能ping通

1.程序準備

準備一個Python文件,名字為 app.py 內容如下:

提供一個web服務,可以訪問地址,返回一個Hello Container World!..并且記錄訪問的次數。

from flask import Flask
from redis import Redis
import os
import socket

app = Flask(__name__)
redis = Redis(host=os.environ.get('REDIS_HOST', '127.0.0.1'), port=6379)


@app.route('/')
def hello():
? ? redis.incr('hits')
? ? return f"Hello Container World! I have been seen {redis.get('hits').decode('utf-8')} times and my hostname is {socket.gethostname()}.\n"

準備一個Dockerfile

FROM python:3.9.5-slim

RUN pip install flask redis && \
? ? groupadd -r flask && useradd -r -g flask flask && \
? ? mkdir /src && \
? ? chown -R flask:flask /src

USER flask

COPY app.py /src/app.py

WORKDIR /src

ENV FLASK_APP=app.py REDIS_HOST=redis

EXPOSE 5000

CMD ["flask", "run", "-h", "0.0.0.0"]

2.鏡像準備

構建flask鏡像,準備一個redis鏡像。

$ docker image pull redis
$ docker image build -t flask-demo .
$ docker image ls
REPOSITORY ? TAG ? ? ? ? ?IMAGE ID ? ? ? CREATED ? ? ? ? ? ? ?SIZE
flask-demo ? latest ? ? ? 4778411a24c5 ? About a minute ago ? 126MB
python ? ? ? 3.9.5-slim ? c71955050276 ? 8 days ago ? ? ? ? ? 115MB
redis ? ? ? ?latest ? ? ? 08502081bff6 ? 2 weeks ago ? ? ? ? ?105MB

3.創(chuàng)建一個docker bridge

$ docker network create -d bridge demo-network
8005f4348c44ffe3cdcbbda165beea2b0cb520179d3745b24e8f9e05a3e6456d
$ docker network ls
NETWORK ID ? ? NAME ? ? ? ? ? DRIVER ? ?SCOPE
2a464c0b8ec7 ? bridge ? ? ? ? bridge ? ?local
8005f4348c44 ? demo-network ? bridge ? ?local
80b63f711a37 ? host ? ? ? ? ? host ? ? ?local
fae746a75be1 ? none ? ? ? ? ? null ? ? ?local
$

4.創(chuàng)建redis container

創(chuàng)建一個叫 redis-server container,連到demo-network

$ docker container run -d --name redis-server --network demo-network redis
002800c265020310231d689e6fd35bc084a0fa015e8b0a3174aa2c5e29824c0e
$ docker container ls
CONTAINER ID ? IMAGE ? ? COMMAND ? ? ? ? ? ? ? ? ?CREATED ? ? ? ? STATUS ? ? ? ? PORTS ? ? ?NAMES
002800c26502 ? redis ? ? "docker-entrypoint.s…" ? 4 seconds ago ? Up 3 seconds ? 6379/tcp ? redis-server

5.創(chuàng)建flask container

注意:--env REDIS_HOST=redis-server 這樣app.py中的REDIS_HOST就可以訪問redis服務了!

$ docker container run -d --network demo-network --name flask-demo --env REDIS_HOST=redis-server -p 5000:5000 flask-demo

6.查看頁面

打開瀏覽器訪問http://127.0.0.1:5000

應該能看到類似下面的內容,每次刷新頁面,計數加1

Hello Container World! I have been seen 36 times and my hostname is 925ecb8d111a.

7.總結

如果把上面的步驟合并到一起,成為一個部署腳本:

# prepare image
docker image pull redis
docker image build -t flask-demo .

# create network
docker network create -d bridge demo-network

# create container
docker container run -d --name redis-server --network demo-network redis
docker container run -d --network demo-network --name flask-demo --env REDIS_HOST=redis-server -p 5000:5000 flask-demo

到此這篇關于Python Flask + Redis 程序練習的文章就介紹到這了,更多相關Python Flask + Redis 練習內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • python3實現的zip格式壓縮文件夾操作示例

    python3實現的zip格式壓縮文件夾操作示例

    這篇文章主要介紹了python3實現的zip格式壓縮文件夾操作,結合實例形式分析了Python3基于zipfile模塊實現zip格式文件壓縮的相關操作技巧,需要的朋友可以參考下
    2019-08-08
  • Python常見異常的處理方式淺析

    Python常見異常的處理方式淺析

    異常指當程序出現錯誤后程序的處理方法,異常機制提供了程序正常退出的安全通道.當出現錯誤后,程序執(zhí)行的流程發(fā)生改變,程序的控制權轉移到異常處理器,如序列的下標越界、打開不存在的文件、空引用異常等
    2023-02-02
  • python中文件操作與異常的處理圖文詳解

    python中文件操作與異常的處理圖文詳解

    在實際開發(fā)中常常需要對程序中的數據進行持久化操作,而實現數據持久化最直接簡單的方式就是將數據保存到文件中,下面這篇文章主要給大家介紹了關于python中文件操作與異常處理的相關資料,需要的朋友可以參考下
    2021-12-12
  • 基于Python編寫一個DOS命令輔助工具

    基于Python編寫一個DOS命令輔助工具

    在日常系統(tǒng)管理和維護工作中,執(zhí)行DOS(Disk?Operating?System)命令是一項必不可少的任務,下面我們就來看看如何使用Python編寫一個簡單的DOS命令輔助工具,簡化系統(tǒng)管理任務吧
    2024-01-01
  • 關于torch.scatter與torch_scatter庫的使用整理

    關于torch.scatter與torch_scatter庫的使用整理

    這篇文章主要介紹了關于torch.scatter與torch_scatter庫的使用整理,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-09-09
  • Python機器學習工具scikit-learn的使用筆記

    Python機器學習工具scikit-learn的使用筆記

    這篇文章主要介紹了Python機器學習工具scikit-learn的使用筆記,幫助大家更好的理解和使用python,感興趣的朋友可以了解下
    2021-01-01
  • 詳解numpy.meshgrid()方法使用

    詳解numpy.meshgrid()方法使用

    這篇文章主要介紹了詳解numpy.meshgrid()方法使用,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-08-08
  • Python代碼顯得Pythonic(區(qū)別于其他語言的寫法)

    Python代碼顯得Pythonic(區(qū)別于其他語言的寫法)

    這篇文章主要介紹了Python代碼顯得Pythonic(區(qū)別于其他語言的寫法),對于字符串連接,相比于簡單的+,更pythonic的做法是盡量使用%操作符或者format函數格式化字符串,感興趣的小伙伴和小編一起進入文章了解更詳細相關知識內容吧
    2022-02-02
  • NumPy 如何生成多維數組的方法

    NumPy 如何生成多維數組的方法

    這篇文章主要介紹了NumPy 如何生成多維數組的方法,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-02-02
  • Python使用requirements.txt和pip打包批量安裝的實現

    Python使用requirements.txt和pip打包批量安裝的實現

    本文主要介紹了Python使用requirements.txt和pip打包批量安裝的實現,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-02-02

最新評論

汤阴县| 西充县| 建瓯市| 七台河市| 黎川县| 新绛县| 台中市| 湛江市| 洱源县| 石城县| 丘北县| 房产| 阿巴嘎旗| 林州市| 西城区| 莲花县| 田东县| 潞城市| 新乐市| 晋中市| 杭锦后旗| 通辽市| 宝坻区| 焉耆| 朝阳市| 虹口区| 海城市| 达尔| 兴和县| 西吉县| 白朗县| 施秉县| 乡城县| 平果县| 张家港市| 沾化县| 孟村| 黎平县| 沈阳市| 壤塘县| 蒙城县|