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

搭建python镜像

文件结构

  • requirements.txt
PyMySQL
opencv-python
  • Dockerfile
FROM python
WORKDIR /app
COPY requirements*.txt ./

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

ENTRYPOINT ["python"]
CMD ["hello.py"]
  • 搭建镜像
    sudo docker build -t docker-python .

简单程序的部署运行

hello world

# hello.py
print('hello')

日历输出

import calendar
 
# 输入指定年月
yy = int(input("输入年份: "))
mm = int(input("输入月份: "))
 
# 显示日历
print(calendar.month(yy,mm))

数据库操作

使用实验二的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()
  • sql.py
from mysql_db import Mysql_db

ip='mysql-image'           #容器名
username='ljy'       #用户名
password='123456'       #密码
db_name='mysql_docker'  #数据库名
table_name='user'       #表名

db=Mysql_db(ip, username, password, db_name,table_name)
db.db_conn()

sql1="insert into %s values('031702127)fsdfsadfasdfasdfasdff 
db.insert_data(sql1)

print(db.select_all())
db.conn_close()

成功插入一行数据

OpenCV程序

  • cv.py
#简单的生成灰度图形
#通过cv2.imread直接实现,0表示使用灰度读入
#最后将灰度图像保存在同一目录下
import cv2

img = cv2.imread("image.png", 0)
cv2.imwrite('result.png', img)
print("success")

小结

  • 遇到的问题:运行日历输出程序报错SyntaxError: Non-UTF-8 code starting with 'xca' in file date.py on line 3, but no encoding declared;经过百度后发现是文件的编码错误。通过file filename查看文件的编码发现是ISO-8869编码,后面删掉重新创建就行了。

  • 花了3小时左右,看看老师给的资料和同学的博客还是比较顺利的完成了下来。

原文地址:https://www.cnblogs.com/ddaydream/p/12940209.html