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

  • 相关阅读:
    java链接linux服务器,命令操作
    linux中php项目无法发送邮件:PEAR mail package is not installed
    linux下部署php项目-Apache、php、mysql关联
    MyEclipse黑色主题
    MyEclipse优化-六步攻略
    致产品
    万物归宗
    【产品渗透:移动端平台与纯应用APP产品的相互嵌入】
    【异类--一万小时定律】
    【活法】
  • 原文地址:https://www.cnblogs.com/replusone/p/12939362.html
Copyright © 2011-2022 走看看