zoukankan      html  css  js  c++  java
  • 2020系统综合实践 第5次实践作业

    构建Python镜像

    项目目录

    Dockefile

    FROM python:3.7
    WORKDIR /app
    COPY requirements*.txt ./
    
    # 修改源并安装依赖
    RUN pip install -r requirements.txt -i https://pypi.douban.com/simple 
    
    ENTRYPOINT ["python"]
    CMD ["hello.py"]
    

    requirement.txt

    PyMySQL
    opencv-python
    

    构建

    docker build -t python:3 .
    

    代码实现

    helloworld

    docker run -v /home/wang/test3/app:/app --rm python:3
    

    日历输出

    date.py

    import calendar
    calendar.setfirstweekday(firstweekday=6)    # 显示出一年 12 个月份的日历
    while True:
        yy = int(input('input years:'))
        # mm = int(input('input month:'))
        for i in range(12):
            print(calendar.month(yy, i + 1))
            print('*' * 20)
    

    运行

    docker run -it -v /home/wang/test3/app:/app --rm python:3 date.py
    

    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()
    

    查看容器ID

    sql.py

    from mysql_db import Mysql_db
    
    ip='b36d3b2ef820'          #容器ID
    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('banana','5');" %table_name
    db.insert_data(sql1)
    
    print(db.select_all())
    
    db.conn_close()
    

    运行

    docker run -it -v /home/wang/test3/app:/app --link=容器ID --rm python:3 sql.py
    

    opencv

    opencv.py

    #透视变换
    import cv2
    import numpy as np
    img = cv2.imread('1.jpg')
    rows,cols,ch = img.shape
    
    pts1 = np.float32([[56,65],[368,52],[28,387],[389,390]])
    pts2 = np.float32([[0,0],[300,0],[0,300],[300,300]])
    
    M = cv2.getPerspectiveTransform(pts1,pts2)
    
    dst = cv2.warpPerspective(img,M,(300,300))
    
    cv2.imwrite("2.jpg", dst, [int(cv2.IMWRITE_JPEG_QUALITY), 100])
    

    运行

    docker run -it -v /home/wang/test3/app:/app --rm python:3 opencv.py
    

    结果

    总结

    时间:一天
    问题:sql运行问题,最后发现是sql语句多打了个逗号。

  • 相关阅读:
    docker镜像管理基础
    docker的基础应用
    mysql基础
    策略模式
    简单工厂模式
    hystrix-go简介
    手把手带你使用 go-kit(option)
    手把手带你使用 go-kit(组件扩充,服务发现)
    手把手带你使用 go-kit(客户端直连)
    手把手带你使用 go-kit(基础篇)
  • 原文地址:https://www.cnblogs.com/wangerfu/p/12924511.html
Copyright © 2011-2022 走看看