zoukankan      html  css  js  c++  java
  • 系统综合实践 第5次实践作业


    作业地址

    (一)Python容器文件配置

    • 目录结构
    • Dockerfile
    FROM python
    MAINTAINER yezi
    WORKDIR /app
    
    #添加依赖文件
    COPY requirements*.txt ./
    
    # 修改源并设置安装依赖
    RUN pip install -r requirements.txt -i https://pypi.douban.com/simple 
    
    #实现命令行式调用容器
    ENTRYPOINT ["python"]
    
    # ENTRYPOINT默认参数
    CMD ["hello.py"]
    
    • requirement.txt
    PyMySQL
    opencv-python
    
    • 镜像构建
    sudo docker build -t docker-python .
    

    sudo docker images命令查看

    (二)程序的部署运行

    (1)helloworld

    • hello.py
    print("hello world")
    

    将本地目录挂载到python工作目录运行,其中--rm命令运行完毕后自动移除容器

    sudo docker run -it -v 本地目录:python工作目录 --rm 镜像名 默认参数
    

    (2)日历输出

    • date.py
    #引入日历模块
    import calendar
    
    # 输入指定年月
    y = int(input("输入年份: "))
    m = int(input("输入月份: "))
    
    # 显示日历
    print(calendar.month(y,m))
    

    执行

    (3)数据库操作

    数据库使用第二次实验的数据库

    • 运行容器
      以docker_mysql_c为容器名运行docker_mysql容器
    docker run --name docker_mysql_c -p 2208:2208 -d docker_mysql
    

    • 增加+查
    #mysql.py文件
    
    import pymysql
        
    # 打开数据库连接
    #db = pymysql.connect("数据库容器ip","数据库用户名","用户密码","数据库容器名" ) 
    db = pymysql.connect("172.17.0.2","yezi","123456","docker_mysql" )
     
    # 使用 cursor() 方法创建一个游标对象 cursor
    cursor = db.cursor()
     # SQL 插入语句
    sql = """INSERT INTO user(id,name)
             VALUES ('2215','lizi')"""
    try:
       # 执行sql语句
       cursor.execute(sql)
       # 提交到数据库执行
       db.commit()
    except:
       # 如果发生错误则回滚
       db.rollback()
    
    # SQL 查询语句
    sql = """SELECT * FROM user""" 
         
    try:
       # 执行SQL语句
       cursor.execute(sql)
       # 获取所有记录列表
       results = cursor.fetchall()
        # 打印结果
       for row in results:
          print ("id=%s,name=%s" % (row[0],row[1]))
    except:
       print ("Error: unable to fetch data")
    # 关闭数据库连接
    db.close()
    

    其中数据库容器ip通过docker inspect mysql容器id查看(拉到显示内容最后),即图中IPAddress

    • 执行
    sudo docker run -it -v /home/yeye/docker/python/app:/app --link=容器名 docker-python mysql.py
    

    • 更新+查
      只需将上面“增加+查”中的sql插入语句更换
        sql = """UPDATE user SET name = 'yeyezi' WHERE id = '0208' """
    

    • 删除+查
      同理修改sql语句
        sql = """DELETE FROM user WHERE name = 'lizi' """
    

    • 登录数据库

    图为原始数据库和上面3个数据库操作后数据库的变化

    (4)opencv

    • opencv.py
    #将图片变成灰度图像
    import cv2
    import numpy as np
    img=cv2.imread('cat.png',0)
    cv2.imwrite('turningCat.png',img)   
    

    执行

    sudo docker run -it -v /home/yeye/docker/python/app:/app --rm docker-python opencv.py
    

    如图为前后变化

    • 参考

    OpenCV-Python 中文教程

    (三)实验感想

    本次实验内容比较简单,按照参考教程没有出什么错。实验共耗时4个小时,其中写博客耗时40分钟。

  • 相关阅读:
    Eclipse + Gradle + TestNG environment setup troubleshooting
    石家庄市教育局人才市场
    js技巧小记
    转 Browserhacks – 史上最全 CSS & JS Hack 手册
    【聊聊并发】【转】
    【深入理解Java内存模型】【转】
    Awk基本入门[1] Awk Syntax and Basic Commands
    Sed基本入门[6] Sed MultiLine Commands and loops
    Awk基本入门[2] Awk Builtin Variables
    SuperMap IS.NET 如何发布数据库型工作空间
  • 原文地址:https://www.cnblogs.com/-yyl/p/12938078.html
Copyright © 2011-2022 走看看