系统综合实践 第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分钟。

posted @ 2020-05-22 17:19  叶叶叶子  阅读(280)  评论(0编辑  收藏  举报