sayoko

导航

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

1、自定义python文件

1.1项目结构

1.2配置文件
Dockerfile
FROM python:3
MAINTAINER sayoko
WORKDIR /app
COPY ./requirements.txt /requirements.txt
RUN pip install -r /requirements.txt -i https://pypi.douban.com/simple  #修改源并安装依赖
ENTRYPOINT ["python"]
CMD ["hello.py"] #默认打开文件
requirements.txt
PyMySQL

opencv-python
1.3构建python镜像

sudo docker build -t python:mypy .

2、完成简单的部署运行

2.1 hello world
hello.py
print("hello world")

sudo docker run -v /home/ubuntu/docker-py/app:/app --rm python:mypy1

2.2日历输出
date.py
import calendar
yy = int(input("输入年份: "))
mm = int(input("输入月份: "))
print(calendar.month(yy,mm))

sudo docker run -it -v /home/ubuntu/docker-py/app:/app --rm python:mypy1 date.py

2.3mysql数据库

找到之前的数据库镜像,运行容器,进入并授予账号特权。

db.py
import pymysql

#打开数据库连接,localhost替换成ip地址,后面依次是用户名,密码,数据库名
db = pymysql.connect("172.22.0.1","sayoko","123456","docker_mysql" )

#使用 cursor() 方法创建一个游标对象 cursor
cursor = db.cursor()

#使用 execute() 方法执行 SQL,如果表存在则删除
cursor.execute("DROP TABLE IF EXISTS EMPLOYEE")

#使用预处理语句创建表
sql = """CREATE TABLE EMPLOYEE (
         FIRST_NAME  CHAR(20) NOT NULL,
         LAST_NAME  CHAR(20),
         AGE INT,  
         SEX CHAR(1),
         INCOME FLOAT )"""

cursor.execute(sql)

#关闭数据库连接
db.close()

sudo docker run -v /home/ubuntu/docker-py/app:/app --rm python:mypy1 db.py

2.4opencv
opencv.py
#仿射变换
import cv2
import numpy as np
img = cv2.imread('a.jpg')
rows,cols,ch = img.shape
pts1 = np.float32([[50,50],[200,50],[50,200]])
pts2 = np.float32([[10,100],[200,50],[100,250]])
M = cv2.getAffineTransform(pts1,pts2)
dst = cv2.warpAffine(img,M,(cols,rows))
#写入文件
cv2.imwrite("a_new.jpg", dst, [int(cv2.IMWRITE_JPEG_QUALITY), 100])

sudo docker run -v /home/ubuntu/docker-py/app:/app --rm python:mypy1 opencv.py

3错误以及解决方法

构建镜像的时候命名了,但是出现的是none

解决办法 再改一下名字

连接数据库的时候也遇到了一些错误(但是忘记截图了……,然后最后尝试着用不同的方法解决了(真的有点忘了,以后一定要做完就写博客!!

用时一个下午+拖延症隔了无数天后的某个上午写博客

posted on 2020-05-21 22:39  sayoko  阅读(129)  评论(0编辑  收藏  举报