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

    一.项目结构

    二.搭建python镜像

    requirements.txt

    PyMySQL
    opencv-python
    

    Dockerfile

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

    搭建镜像
    sudo docker build -t docker-python .

    三.简单程序的部署运行

    (1)hello world

    # hello.py
    print('hello world')
    

    (2)日历输出

    import calendar
     
    # 输入指定年月
    yy = int(input("输入年份: "))
    mm = int(input("输入月份: "))
     
    # 显示日历
    print(calendar.month(yy,mm))
    

    (3)数据库操作

    打开上次实验的容器

    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='mysql-image'           #容器名
    username='root'       #用户名
    password='123456'       #密码
    db_name='zjs'  #数据库名
    table_name='user'       #表名
    
    db=Mysql_db(ip, username, password, db_name,table_name)
    db.db_conn()
    
    sql1="insert into %s values(021800827,'zqr');" %table_name
    db.insert_data(sql1)
    
    print(db.select_all())
    db.conn_close()
    

    可以看到原来是空表,后插入了一条数据

    (4)OpenCV程序

    cv.py

    #简单的生成灰度图形
    #通过cv2.imread直接实现,0表示使用灰度读入
    #最后将灰度图像保存在同一目录下
    import cv2
    
    img = cv2.imread("image.jpg", 0)
    cv2.imwrite('result.jpg', img)
    print("success")
    

    四.总结

    这次实验流程相比上次短得多,大概用时在三小时左右,主要的坑点在于不是很了解命令出现了input的错误,后面把命令行改正就可以了。

  • 相关阅读:
    开发,从需求出发 · 之四 春天在这里
    面向基于英特尔® 架构的 Android* 的 CoCos2D
    js左右切换 选择年龄
    先序遍历创建二叉树,对二叉树统计叶子节点个数和统计深度(创建二叉树时#代表空树,序列不能有误)c语言
    [ACM] hdu 1251 统计难题 (字典树)
    设计模式:单例模式的三种创建方式及其各自的优缺点
    [Android 4.4.2] 泛泰A850 Mokee4.4.2 20140509 RC2.0 by syhost
    IA32 MMU paging初始化代码
    为Android开发人员定制的搜索引擎
    Android中Activity切换时共享视图元素的切换动画(5.0以上)
  • 原文地址:https://www.cnblogs.com/zhangjiusi/p/12923823.html
Copyright © 2011-2022 走看看