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参数才能正确输入和运行。

  • 相关阅读:
    668. Kth Smallest Number in Multiplication Table
    658. Find K Closest Elements
    483. Smallest Good Base
    475. Heaters
    454. 4Sum II
    441. Arranging Coins
    436. Find Right Interval
    410. Split Array Largest Sum
    392. Is Subsequence
    378. Kth Smallest Element in a Sorted Matrix
  • 原文地址:https://www.cnblogs.com/replusone/p/12939362.html
Copyright © 2011-2022 走看看