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

摘要:
实验耗时4小时,其中40分钟用于写博客。

目录

作业地址

(一)Python容器文件配置

  • 目录结构
    系统综合实践 第5次实践作业第1张
  • Dockerfile
FROM python
MAINTAINER yezi
WORKDIR /app

#添加依赖文件
COPY requirements*.txt ./

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

#实现命令行式调用容器
ENTRYPOINT ["python"]

# ENTRYPOINT默认参数
CMD ["hello.py"]
  • requirement.txt
PyMySQL
opencv-python
  • 镜像构建
sudo docker build -t docker-python .

sudo docker images命令查看
系统综合实践 第5次实践作业第2张

(二)程序的部署运行

(1)helloworld

  • hello.py
print("hello world")

将本地目录挂载到python工作目录运行,其中--rm命令运行完毕后自动移除容器

sudo docker run -it -v 本地目录:python工作目录 --rm 镜像名 默认参数

系统综合实践 第5次实践作业第3张

(2)日历输出

  • date.py
#引入日历模块
import calendar

# 输入指定年月
y = int(input("输入年份: "))
m = int(input("输入月份: "))

# 显示日历
print(calendar.month(y,m))

执行

系统综合实践 第5次实践作业第4张

(3)数据库操作

数据库使用第二次实验的数据库

  • 运行容器
    以docker_mysql_c为容器名运行docker_mysql容器
docker run --name docker_mysql_c -p 2208:2208 -d docker_mysql

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

  • 增加+查
#mysql.py文件

import pymysql
    
# 打开数据库连接
#db = pymysql.connect("数据库容器ip","数据库用户名","用户密码","数据库容器名" ) 
db = pymysql.connect("172.17.0.2","yezi","123456","docker_mysql" )
 
# 使用 cursor() 方法创建一个游标对象 cursor
cursor = db.cursor()
 # SQL 插入语句
sql = """INSERT INTO user(id,name)
         VALUES ('2215','lizi')"""
try:
   # 执行sql语句
   cursor.execute(sql)
   # 提交到数据库执行
   db.commit()
except:
   # 如果发生错误则回滚
   db.rollback()

# SQL 查询语句
sql = """SELECT * FROM user""" 
     
try:
   # 执行SQL语句
   cursor.execute(sql)
   # 获取所有记录列表
   results = cursor.fetchall()
    # 打印结果
   for row in results:
      print ("id=%s,name=%s" % (row[0],row[1]))
except:
   print ("Error: unable to fetch data")
# 关闭数据库连接
db.close()

其中数据库容器ip通过docker inspect mysql容器id查看(拉到显示内容最后),即图中IPAddress
系统综合实践 第5次实践作业第6张

  • 执行
sudo docker run -it -v /home/yeye/docker/python/app:/app --link=容器名 docker-python mysql.py

系统综合实践 第5次实践作业第7张

  • 更新+查
    只需将上面“增加+查”中的sql插入语句更换
    sql = """UPDATE user SET name = 'yeyezi' WHERE   """

系统综合实践 第5次实践作业第8张

  • 删除+查
    同理修改sql语句
    sql = """DELETE FROM user WHERE name = 'lizi' """

系统综合实践 第5次实践作业第9张

  • 登录数据库

图为原始数据库和上面3个数据库操作后数据库的变化
系统综合实践 第5次实践作业第10张

(4)opencv

  • opencv.py
#将图片变成灰度图像
import cv2
import numpy as np
img=cv2.imread('cat.png',0)
cv2.imwrite('turningCat.png',img)   

执行

sudo docker run -it -v /home/yeye/docker/python/app:/app --rm docker-python opencv.py

如图为前后变化
系统综合实践 第5次实践作业第11张

  • 参考

OpenCV-Python 中文教程

(三)实验感想

本次实验内容比较简单,按照参考教程没有出什么错。实验共耗时4个小时,其中写博客耗时40分钟。

免责声明:文章转载自《系统综合实践 第5次实践作业》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇MFC 扫雷JS实现图片预加载无需等待下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Grid++Report 数据填充教程

用 Grid++Report的报表设计器应用程序设计一个简单的报表:“机房开发收入总汇表”                  一、定义报表头 1、执行菜单命令“插入”→“报表头” 2、执行菜单命令“插入”→“静态框” 3、设置 StaticBox1 的“文本”属性设为“机房开发收入总汇表”,“文本对齐方式”和 “字体”属性。  二、插入明细网格 1...

搭建k8s

How to setup k8s cluster on ubuntu?一、设置基本环境(需要开启超级用户权限) 1. 禁止selinux 安装控制selinux的命令: apt-get install -y selinux-utils 禁止selinux: setenforce 0 重启操作系统: shutdown -r now     查看se...

oracle查看和修改最大连接数

第一步,在cmd命令行,输入sqlplus 或者直接在plsql中打开command window第二步,根据提示输入用户名与密码1. 查看processes和sessions参数 1 2 3 4 5 6 7 8 9 10 11 12 13 SQL> show parameter processes     NAME            ...

Python import / pyd / dll

使用Python import 模块时, 先会在模块的搜索path里依次搜索(前面会覆盖之后出现的同名模块),次序为:  1. 程序的主目录(交互模式下当前的工作目录或 脚本文件所在的目录) 2. 环境变量 PYTHONPATH目录(如果已经进行了设置) 3. 标准链接库目录(标准库模块所在目录 C:Python27或C:Python27Libsite-p...

python AES加密 ECB PKCS5

class AesEbc16:  # 按块的大小, 一块一块的加密, 明文和密文长度一样   def __init__(self):     self.key = b"123qweqqqwerqwer"  # 加密和解密用同一个秘钥, 长度为 每块的长度     self.mode = AES.MODE_ECB  # ECB加密模式, 也是默认的模式, 创...

docker 下载安装镜像

docker安装成功后。 1、搜索镜像 #  docker search java 可使用 docker search命令搜索存放在 Docker Hub(这是docker官方提供的存放所有docker镜像软件的地方,类似maven的中央仓库)中的镜像。执行该命令后, Docker就会在Docker Hub中搜索含有 java这个关键词的镜像仓库。 Doc...