zoukankan      html  css  js  c++  java
  • 第5次实践作业

    通过容器完成简单helloworld、日历输出、mysql数据库操作、opencv程序的部署运行

    1.项目结构

    2.搭建python镜像

    (1)requirements.txt

    PyMySQL
    opencv-python
    

    (2)Dockerfile

    FROM python:3
    WORKDIR /usr/src/app   
    COPY requirements.txt ./
    RUN pip install -r requirements.txt -i https://pypi.douban.com/simple  
    COPY app/helloworld.py /usr/src/app/   
    VOLUME /usr/src/app
    ENTRYPOINT ["python"]    
    CMD ["helloworld.py"]   
    

    (3)搭建镜像

    3.运行Python程序

    (1)helloworld
    print('Hello World!')

    (2)日历输出

    import calendar
    yy = int(input("输入年份: "))
    mm = int(input("输入月份: "))
    print(calendar.month(yy,mm))
    


    (3)mysql数据库操作

    import pymysql
    
    # 打开数据库连接
    db = pymysql.connect("sql", "docker", "123456", "docker_mysql")
    
    # 第一个参数是本地容器名字
    # 第二三个参数是数据库的使用用户与密码
    # 第四个参数是数据库名称
    # 创建游标对象
    
    cursor = db.cursor()
    # 先查询一次数据库数据
    sql = """select * FROM test"""
    cursor.execute(sql)
    results = cursor.fetchall()
    print(results)
    
    # SQL插入语句
    sql = """insert test(id,name)
    	values('031702526','zh')"""
    cursor.execute(sql)
    db.commit()
    
    # 插入完成后再读取一次数据库数据
    sql = """select * FROM test"""
    cursor.execute(sql)
    results = cursor.fetchall()
    print(results)
    
    # 关闭数据库连接
    db.close()
    


    (4)opencv程序的部署运行

    import cv2
    
    # flags传入0表示灰度图像, 1表示彩色图像
    img=cv2.imread('test.jpg',flags=1)
    
    # 获取图片尺寸
    rows,cols=img.shape[:2]
    
    # 这里的第一个参数为旋转中心,第二个为旋转角度,第三个为旋转后的缩放因子
    # 可以通过设置旋转中心,缩放因子,以及窗口大小来防止旋转后超出边界的问题
    M=cv2.getRotationMatrix2D((cols/2,rows/2),90,1)
    
    # 第三个参数是输出图像的尺寸中心
    dst=cv2.warpAffine(img,M,(cols,rows))
    
    # 写入文件
    cv2.imwrite("test-rotated.jpg", dst, [int(cv2.IMWRITE_JPEG_QUALITY), 100])
    print('rotated and saved.')
    


    原图:

    结果图:

    4.遇到的问题和解决办法

    (1)搭建镜像不成功

    忘记在最后加上 .
    (2)数据库连接不成功
    找不到之前实验的容器,将之前mysql实验重新做了一次
    (3)这次实验比上次实验要轻松许多,花了一个下午来进行实验,遇到的问题也通过问同学一一解决了

  • 相关阅读:
    广度优先搜索
    洛谷 P1126 机器人搬重物
    codevs 1058 合唱队形
    洛谷P1216 [USACO1.5]数字三角形 Number Triangles
    Codevs 1576 最长严格上升子序列
    跳马(Knight Moves), ZOJ1091, POJ2243
    洛谷 P1644 跳马问题
    NOI 2971 抓住那头牛
    NOI 2727 仙岛求药
    搜索与回溯算法
  • 原文地址:https://www.cnblogs.com/fzuzh/p/12925470.html
Copyright © 2011-2022 走看看