• 2020系统综合实践 第五次实践作业


    一.python镜像布置

    1.树形结构

    hello.py--python容器的测试代码
    date.py--日历代码
    op.py--opencv程序代码
    date.py--数据库代码
    test.jpg--测试图片
    test-rotated--opencv运行结果图片
    

    2.dockerfile

    FROM python:3
    MAINTAINER monster<1263199084@qq.com>
    WORKDIR /app
    COPY ./requirements.txt /requirements.txt
    RUN pip install -r /requirements.txt -i https://pypi.douban.com/simple  #修改源并安装依赖
    ENTRYPOINT ["python"]
    CMD ["hello.py"] #默认打开文件
    

    3.requirements

    PyMySQL
    opencv-python
    

    二.Hello World

    -v将本地目录挂载到python工作目录以方便代码修改

    --rm运行完毕后自动移除容器

    vim hello.py
    print('hello world')
    
    sudo docker run -it --rm -v /home/monster/python/app:/app python:test1 hello.py
    

    三.日历输出(参考菜鸟教程)

    vim date.py
    import calendar
     
    # 输入指定年月
    yy = int(input("输入年份: "))
    mm = int(input("输入月份: "))
     
    # 显示日历
    print(calendar.month(yy,mm))
    

    交互式终端需要 -it 指令

    sudo docker run -it --rm -v /home/monster/python/app:/app python:test1 date.py
    

    四.mysql数据库操作(使用实践二中的数据库

    import pymysql
    
    # 打开数据库连接
    db = pymysql.connect("mysql", "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(2022,'DEF')"""
    cursor.execute(sql)
    db.commit()
    
    #插入完成后再读取一次数据库数据
    sql = """select * FROM test"""
    cursor.execute(sql)
    results = cursor.fetchall()
    print(results)
    
    # 关闭数据库连接
    db.close()
    
    sudo docker run -it --rm -v /home/monster/python/app:/app --link=mysql:mysql python:test1  db.py
    

    未执行py文件前的docker_mysql数据库中test表

    执行py文件后的docker_mysql数据库中test表

    五.opencv程序

    #做一个图片翻转功能
    import cv2
    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.')
    
     sudo docker run -it --rm -v /home/monster/python/app:/app  python:test1 op.py
    

    六.实验总结

    前后花费大概4小时的时间吧,和实践四相比起来,轻松多了

  • 相关阅读:
    8088汇编跳转和PSW状态字寄存器
    Delphi的函数指针
    服务器系统及软件常见漏洞
    TGraphiControl响应WM_MOUSEMOVE的过程(以TPaintBox为例)good
    两个奇怪的取地址符号
    把x指针指向的4个字节次序颠倒过来
    DELPHI中的消息处理机制(三种消息处理方法的比较,如何截断消息)
    探索C++的底层机制
    setprecision、fixed、showpoint的用法总结(经典!!超经典!!)
    段寄存器和8种地址寻址方式
  • 原文地址:https://www.cnblogs.com/ljw1999/p/12906193.html
Copyright © 2020-2023  润新知