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


    ❄一、python镜像构建

    (1)树形结构

    (2)dockerfile

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

    (3)requirements.txt

    PyMySQL
    opencv-python
    

    (4)构建镜像

    sudo docker build -t bbr-python .
    

    ❄运行程序

    (1)helloworld.py

    print('hello world')
    

    运行

    sudo docker run -it --rm -v /home/hadoop/py/app:/app bbr-python helloworld.py
    

    (2)date.py(日历输出)

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

    运行

    sudo docker run -it --rm -v /home/hadoop/py/app:/app bbr-python date.py
    

    (3) db.py(数据库操作)

    import pymysql
     
    # 打开数据库连接
    db = pymysql.connect("bymysql", "docker", "123456", "docker_mysql")
    
    # 使用 cursor() 方法创建一个游标对象 cursor
    cursor = db.cursor()
     
    # 使用 execute()  方法执行 SQL 查询 
    cursor.execute("SELECT VERSION()")
     
    # 使用 fetchone() 方法获取单条数据.
    data = cursor.fetchone()
     
    print ("Database version : %s " % data)
    
    # 使用 execute() 方法执行 SQL,如果表存在则删除
    cursor.execute("DROP TABLE IF EXISTS `user`")
    
    sql = """CREATE TABLE IF NOT EXISTS `user`(
             `id` bigint(20) NOT NULL,
             `name` varchar(50) DEFAULT NULL)"""
    
    cursor.execute(sql)
    
    # SQL 插入语句
    sql = """INSERT INTO `user`(`id`,
             `name`)
             VALUES (13, 'br')"""
    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:
          id = row[0]
          name = row[1]
           # 打印结果
          print ("id=%s,name=%s" % 
                 (id, name))
    except:
       print ("Error: unable to fetch data")
    
    # 关闭数据库连接
    db.close()
    

    运行

    sudo docker run --name bymysql -d bymysql
    sudo docker run -it --rm -v /home/hadoop/py/app:/app bbr-python db.py
    


    验证

    sudo docker exec -it bymysql /bin/bash
    mysql -u docker -p #输入密码123456
    show databases;
    use docker_mysql
    select * from user;
    

    (4)opencv.py(图像翻转程序)

    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/hadoop/py/app:/app bbr-python opencv.py
    

    ❄遇到的问题

    Q:

    A:发现是db.py文件多打了符号,不认真犯的错

    ❄花费的时间

    • 镜像构建:0.5h
    • 运行程序:2h
    • 博客:0.5h
    • 总计:3h
  • 相关阅读:
    progID
    windbg
    msil_accessibility_b03f5f7f11d50a3a_6.1.7600.16385_none_2232298e4f48d6ba
    jupybook编程快捷键
    django遇到的error(待续)
    python 遇到error(待续)
    前端 遇到error(待续)
    sql语句组件 在框架中的应用
    django models分页
    Python的学习之旅———用户与程序交互
  • 原文地址:https://www.cnblogs.com/bbbr/p/12936102.html
Copyright © 2020-2023  润新知