zoukankan      html  css  js  c++  java
  • 第五次实践作业

    第五次实践作业

    一、Python镜像环境搭建

    项目结构如图:

    • Dockerfile

      FROM python:3
      MAINTAINER qaq
      WORKDIR /usr/src/app
      COPY requirements.txt ./
      RUN pip install  --default-timeout=100 --no-cache-dir -i https://pypi.tuna.tsinghua.edu.cn/simple -r requirements.txt
      VOLUME /usr/src/app
      ENTRYPOINT [ "python" ]  # 实现命令行式调用容器
      CMD ["python"]
      
    • requirements.txt

      PyMySQL
      opencv-python
      
    • 创建镜像

      docker build -t docker:py .
      

    二、运行python

    1. hello world

      helloworld.py

      print("hello world")
      

      运行程序

      sudo docker run --rm -v /home/xiaoc/docker_python/app:usr/src/app docker:py helloworld.py
      

    1. 日历输出

      date.py

      import calendar
      year = int(input("输入年份: "))
      month = int(input("输入月份: "))
      print(calendar.month(year,month))
      

      运行程序

      sudo docker run --it -rm -v /home/xiaoc/docker_python/app:usr/src/app docker:py helloworld.py
      

    1. mysql数据库操作

      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='cjymysql'          #容器名
      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('031702660','zhangsan','female','cs','xiaob');" %table_name
      db.insert_data(sql1)
      
      print(db.select_all())
      
      db.conn_close()
      

      运行程序

      sudo docker run -it -v /home/xiaoc/docker_python/app:/usr/src/app --rm --link=cjymysql docker:py sql.py
      

    登陆数据库查看插入结果

    4.opencv程序的部署运行

    cv.py

    #查看图片像素的BGR值
    import cv2
    img=cv2.imread('test.jpg')
    px=img[100,100]
    print(px)
    blue=img[100,100,0]
    print(blue)
    

    运行程序

    sudo docker run --rm -v /home/xiaoc/docker_python/app:usr/src/app docker:py cv.py
    

    三.所花时间及遇到问题

    时间:总共花了6个小时左右

    问题:date.py运行时需加入-it参数才能正确输入和运行。

  • 相关阅读:
    【总结】进程和线程的区别
    为什么要求数据链路层帧的长度必须限制在一定范围内?
    常用正交表
    用正交表设计测试用例
    测试中的杀虫剂困境
    作品集-1:淘宝支付宝登陆框
    # 36氪开放日 • 杭州 • 11月10日 # 谈谈参会感受
    《在你身边,为你设计》读后感
    抱怨的背后
    更快的方式实现PHP数组去重
  • 原文地址:https://www.cnblogs.com/replusone/p/12939362.html
Copyright © 2011-2022 走看看