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

Python?Flask?+?Redis?程序練習(xí)

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

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

1.程序準(zhǔn)備

準(zhǔn)備一個Python文件,名字為 app.py 內(nèi)容如下:

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

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"

準(zhǔ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.鏡像準(zhǔn)備

構(gòu)建flask鏡像,準(zhǔn)備一個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服務(wù)了!

$ 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

應(yīng)該能看到類似下面的內(nèi)容,每次刷新頁面,計數(shù)加1

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

7.總結(jié)

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

# 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

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

相關(guān)文章

  • python3實現(xiàn)的zip格式壓縮文件夾操作示例

    python3實現(xiàn)的zip格式壓縮文件夾操作示例

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

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

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

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

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

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

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

    關(guān)于torch.scatter與torch_scatter庫的使用整理

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

    Python機(jī)器學(xué)習(xí)工具scikit-learn的使用筆記

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

    詳解numpy.meshgrid()方法使用

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

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

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

    NumPy 如何生成多維數(shù)組的方法

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

    Python使用requirements.txt和pip打包批量安裝的實現(xiàn)

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

最新評論

兴国县| 措美县| 介休市| 汾西县| 顺义区| 手游| 浮山县| 高阳县| 凤城市| 翼城县| 来安县| 磐安县| 荣成市| 汾阳市| 卢氏县| 改则县| 呼和浩特市| 永年县| 荆门市| 武穴市| 策勒县| 乐陵市| 沂水县| 正镶白旗| 竹溪县| 卢氏县| 肃南| 宁化县| 聂拉木县| 雷波县| 海口市| 航空| 陆丰市| 长兴县| 漳州市| 蒲江县| 平罗县| 黎城县| 东方市| 天津市| 乐亭县|