2020系统综合实践 第5次实践作业

一、项目结构

建立如下文件(其中test-rotated.jpg为opencv运行生成的图片)

二、搭建python镜像

1、requirements.txt

PyMySQL
opencv-python

2、Dockerfile

FROM python:3
MAINTAINER yxy
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、 搭建镜像

在python文件夹中打开终端,运行如下命令

sudo docker build -t python:test1 . 

三、Hello World

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

--rm参数使得容器在运行后直接自动删除

四、日历输出

# date.py
import calendar

# 输入指定年月
yy = int(input("输入年份: "))
mm = int(input("输入月份: "))

# 显示日历
print(calendar.month(yy,mm))
sudo docker run -it --rm -v /home/ubuntu/python/app:/app python:test1 date.py 

五、mysql数据库操作

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

db.py

import pymysql

# 打开数据库连接
db = pymysql.connect("sql", "docker", "111111", "docker_mysql")
#创建游标对象

cursor = db.cursor()

#SQL插入语句
sql="""insert test(id,name,sex)
	values(031700000,'Lin','male')"""
cursor.execute(sql)
db.commit()

#插入完成后再读取一次数据库数据
sql = """select * FROM test"""
cursor.execute(sql)
results = cursor.fetchall()
print(results)

# 关闭数据库连接

db.close()

执行py文件

sudo docker run -it --rm -v /home/ubuntu/python/app:/app --link=sql:sql python:test1  db.py

执行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/ubuntu/python/app:/app  python:test1 op.py 

七、实验总结

难度比之前的几次实验要小,大约花费4个小时

posted @ 2020-05-21 22:42  大口吃肉  阅读(218)  评论(0编辑  收藏  举报