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

构建Python镜像

项目目录

Dockefile

FROM python:3.7
WORKDIR /app
COPY requirements*.txt ./

# 修改源并安装依赖
RUN pip install -r requirements.txt -i https://pypi.douban.com/simple 

ENTRYPOINT ["python"]
CMD ["hello.py"]

requirement.txt

PyMySQL
opencv-python

构建

docker build -t python:3 .

代码实现

helloworld

docker run -v /home/wang/test3/app:/app --rm python:3

日历输出

date.py

import calendar
calendar.setfirstweekday(firstweekday=6)    # 显示出一年 12 个月份的日历
while True:
    yy = int(input('input years:'))
    # mm = int(input('input month:'))
    for i in range(12):
        print(calendar.month(yy, i + 1))
        print('*' * 20)

运行

docker run -it -v /home/wang/test3/app:/app --rm python:3 date.py

mysql数据库操作

mysql_db.py

import pymysql

class Mysql_db():

    def __init__(self,ip,username,password,db_name,table_name):

        self.ip=ip
        self.username=username
        self.password=password
        self.db_name=db_name
        self.table_name=table_name

    def db_conn(self):

        #打开数据库连接
        self.conn=pymysql.connect(self.ip,self.username,self.password,self.db_name)

        #创建一个游标
        self.cursor=self.conn.cursor()

    #创建表格
    def create_table(self,sql):

        self.cursor.execute('drop table if exists %s;' %self.table_name)

        self.cursor.execute(sql)

    #插入数据
    def insert_data(self,sql):
        #执行SQL语句,发生错误时回滚
        try:
            self.cursor.execute(sql)
            self.conn.commit()

        except :
            self.conn.rollback()

    #查询数据
    def select_all(self):

        sql='select * from %s' %self.table_name
        self.cursor.execute(sql)
        return self.cursor.fetchall()

    #更新数据库数据
    def update_data(self):
        #执行SQL语句,发生错误时回滚
        try:
            self.cursor.execute(sql)
            self.conn.commit()

        except :
            self.conn.rollback()        

    #删除数据
    def delete_data(self):
        #执行SQL语句,发生错误时回滚
        try:
            self.cursor.execute(sql)
            self.conn.commit()

        except :
            self.conn.rollback()


    #关闭数据库
    def conn_close(self):

        self.conn.close()

查看容器ID

sql.py

from mysql_db import Mysql_db

ip='b36d3b2ef820'          #容器ID
username='docker'         #用户名
password='123456'      #密码
db_name='docker_mysql' #数据库名
table_name='user'    #表名
db=Mysql_db(ip, username, password, db_name,table_name)
db.db_conn()
sql1="insert into %s values('banana','5');" %table_name
db.insert_data(sql1)

print(db.select_all())

db.conn_close()

运行

docker run -it -v /home/wang/test3/app:/app --link=容器ID --rm python:3 sql.py

opencv

opencv.py

#透视变换
import cv2
import numpy as np
img = cv2.imread('1.jpg')
rows,cols,ch = img.shape

pts1 = np.float32([[56,65],[368,52],[28,387],[389,390]])
pts2 = np.float32([[0,0],[300,0],[0,300],[300,300]])

M = cv2.getPerspectiveTransform(pts1,pts2)

dst = cv2.warpPerspective(img,M,(300,300))

cv2.imwrite("2.jpg", dst, [int(cv2.IMWRITE_JPEG_QUALITY), 100])

运行

docker run -it -v /home/wang/test3/app:/app --rm python:3 opencv.py

结果

总结

时间:一天
问题:sql运行问题,最后发现是sql语句多打了个逗号。

posted @ 2020-05-20 16:44  Axispowers  阅读(176)  评论(0编辑  收藏  举报