• 第5次实践作业


    第5次实践作业

    环境安装

    • 目录结构

    • 配置文件

      • Dockerfile

        FROM python:3
        
        MAINTAINER SilentSamsara
        
        WORKDIR ./PyProgram
        
        COPY requirements.txt ./
        
        RUN pip install --no-cache-dir -i https://pypi.tuna.tsinghua.edu.cn/simple -r requirements.txt
        
        ENTRYPOINT ["python"]
        
      • 制作镜像

        docker build -t my_python .

    代码实现

    • helloworld.py

      print('hello world!')
      

      docker run -it --rm --name my-running-script -v /home/silentsamsara/Desktop/work5/step/PyProgram:/usr/src/app my_python helloworld.py

    • year.py

      import calendar
      import datetime
      
      yy = int(datetime.datetime.now().year)
      mm = int(datetime.datetime.now().month)
      
      print(calendar.month(yy,mm))
      

      docker run -it --rm --name my-running-script -v /home/silentsamsara/Desktop/work5/step/PyProgram:/usr/src/app my_python year.py

    • connetMySQL.py

      #!/usr/bin/python3
      #coding=utf-8
      
      
      import pymysql
      
      # 打开数据库连接
      db = pymysql.connect(host="172.17.0.2",user="SilentSamsara_t",password="admin",db="docker_mysql",port=3306)
      
      # 使用cursor()方法获取操作游标
      cursor = db.cursor()
      
      print('Befor INSERT:')
      sql = """SELECT * FROM user"""
      
      try:
         # 执行SQL语句
         cursor.execute(sql)
         # 获取所有记录列表
         results = cursor.fetchall()
         for row in results:
            id = row[0]
            name = row[1]
            sex = row[2]
             # 打印结果
            print ("id=%s,name=%s,sex=%s" % 
                   (id, name, sex))
      except:
         print ("Error: unable to fetch data")
      
      print('
      After INSERT:')
      # SQL 插入语句
      sql = """INSERT INTO user(id,name, sex) VALUES ('031700000', 'XiaoMing', 'male')"""
      try:
         # 执行sql语句
         cursor.execute(sql)
         # 提交到数据库执行
         db.commit()
      except:
         # 如果发生错误则回滚
         db.rollback()
      
      sql = """SELECT * FROM user"""
      
      try:
         # 执行SQL语句
         cursor.execute(sql)
         # 获取所有记录列表
         results = cursor.fetchall()
         for row in results:
            id = row[0]
            name = row[1]
            sex = row[2]
             # 打印结果
            print ("id=%s,name=%s,sex=%s" % 
                   (id, name, sex))
      except:
         print ("Error: unable to fetch data")
      # 关闭数据库连接
      db.close()
      
      

      sudo docker run --name msql -p 3306:3306 -d my_mysql

      运行之前制作的mysql镜像

      docker run -it --rm --name my-running-script -v /home/silentsamsara/Desktop/work5/step/PyProgram:/usr/src/app my_python connetMySQL.py

    • opencv.py

      #!/usr/bin/python3
      #coding=utf-8
      
      import cv2
      import numpy as np
      img=cv2.imread('lion.jpeg',0)
      rows,cols=img.shape
      
      # 这里的第一个参数为旋转中心,第二个为旋转角度,第三个为旋转后的缩放因子
      # 可以通过设置旋转中心,缩放因子,以及窗口大小来防止旋转后超出边界的问题
      
      M=cv2.getRotationMatrix2D((cols/2,rows/2),45,0.6)
      # 第三个参数是输出图像的尺寸中心
      dst=cv2.warpAffine(img,M,(2*cols,2*rows))
      cv2.imwrite("output.jpeg", dst, [int(cv2.IMWRITE_JPEG_QUALITY), 100])
      
      print('done.')
      

      docker run -it --rm --name my-running-script -v /home/silentsamsara/Desktop/work5/step/PyProgram:/usr/src/app my_python opencv.py

      查看图片:

    总结

    • 合计时间:
      • 4个小时左右
    • 错过的坑
      • 写数据库Python代码时,端口不小心达成了字符串.导致尝试半天不通过

      • 还有数据库的映射问题,经过别帮助了解到可以通过

        docker inspect [container]

        查看容器的网络状态

  • 相关阅读:
    103.Binary Tree Zigzag Level Order Traversal
    6.ZigZag Conversion
    102.Binary Tree Level Order Traversal
    interrupted()和isInterrupted()比较+终止线程的正确方法+暂停线程
    117.Populating Next Right Pointers in Each Node II
    Thread.currentThread()与this的区别
    116.Populating Next Right Pointers in Each Node
    UNIX 技巧: UNIX 高手的另外 10 个习惯
    UNIX 高手的 10 个习惯
    关于CGI:Tomcat、PHP、Perl、Python和FastCGI之间的关系
  • 原文地址:https://www.cnblogs.com/SilentSamsara/p/12939659.html
Copyright © 2020-2023  润新知