第5次实践作业

1.实验前准备

docker pull python 3.7
docker run -it -v $PWD:/usr/src/myapp -w /usr/src/myapp python:3.7 /bin/bash #运行python容器 ,将工作目录挂载到当前目录
pip install PyMySQL  #下载连接mysql的库
pip install opencv-python -i https://pypi.tuna.tsinghua.edu.cn/simple  #从清华源下载opencv库
#下载一张图片并命名为1.jpg

2.Hello World!

  • 在本地创建helloworld.py
print("Hello World!")

  • 运行helloworld程序
python helloworld.py   #接下来程序的运行都是如此

3.日历输出

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

4.mysql操作

  • 运行mysql,并创建数据库和表格
docker run --name mysql -e MYSQL_ROOT_PASSWORD=123456 -p 3306:3306 -d mysql:5.7 
docker exec -it e44d6622d09d /bin/bash   #一定要先后天运行在转到前台,否则不能登录
mysql -u root -p
create datebase student;
use student
create table grade1 (num int , name varchar(20),primary key(num));  #创建数据表
insert into grade1(num,name) value(123456 , 'xhj'); #插入数据
select * from grade1;

  •  connectdb.py
import pymysql
 
# 打开数据库连接
db = pymysql.connect(host='10.0.2.15',port=3306,user='root',passwd='123456',db='student')   #host使用自己的ip就可以
 
# 使用 cursor() 方法创建一个游标对象 cursor
cursor = db.cursor()
 
# 使用 execute()  方法执行 SQL 查询 
try:
    cursor.execute("select * from grade1;")   #执行
    results = cursor.fetchall()
 
    for row in results:
          num = row[0]
          name = row[1]
           # 打印结果
          print ("num=%d , name=%s" % 
                 (num,name ))

except:
    print("Error: unable to fetch data")
# 关闭数据库连接
db.close()

5. opencv操作

  • opencv-operation.py
import cv2
# 生成图片
img = cv2.imread("1.jpg")
# 生成灰色图片
imgGrey = cv2.imread("1.jpg", 0)
#  展示原图 ,下面这句话得注释掉
#cv2.imshow("img", img)
#  展示灰色图片 ,因为docker不支持图形显示所以这个地方要注释掉
#cv2.imshow("imgGrey", imgGrey)
#  等待图片的关闭
cv2.waitKey()
# 保存灰色图片
cv2.imwrite("Copy.jpg", imgGrey)  
  • 原图片

  •  运行代码后保存的灰色图片

6.碰到的问题以及所花的时间

问题描述:

  刚开始我使用数据库一直登陆不上去,如图

        而且使用python连接数据库也是登陆不上

 问题解决

         mysql镜像的运行得先将mysql挂到后台运行之后使用exec命令进入mysql操作,否则就会出现这样的情况,具体解决方法见mysql部分。

所花的时间

       实验:2小时

  改错:1小时

  博客:0.5小时

  总计:3.5小时

原文地址:https://www.cnblogs.com/xhongj/p/12922856.html