2020系统综合实践

Posted ycj202595

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2020系统综合实践相关的知识,希望对你有一定的参考价值。

一、实验文件目录

技术图片

二、构建个人python镜像

1、requirements.txt

Pymysql
opencv-python

2、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"]

构建镜像

docker build -t docker-python .

技术图片
技术图片

三、运行测试

1、hello.py

hello python

执行命令:

docker run --rm -v /home/yangchengjin/python/app:/app docker-python hello.py

技术图片
2、date.py

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

执行命令:

docker run --rt -v /home/yangchengjin/python/app:/app docker-python date.py

3、mysql数据库操作
这次用到的数据库容器是实验二的数据库容器,所以先运行实验二当时建立的mysql容器,然后进入数据库,连接到docker_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


ip=‘c_mysql_ex2‘        #MySQL容器名
username=‘ycj‘    #用户名
password=‘123456‘     #密码
db_name=‘docker_mysql‘#数据库名
table_name=‘test‘     #表名
db=Mysql_db(ip, username, password, db_name,table_name)

db.db_conn()

sql1="insert into %s values(‘123456790‘,95);" %table_name
db.insert_data(sql1)

print(db.select_all())

db.conn_close()

在新建终端执行:

docker run -it -v /home/yangchengjin/python/app:/app --link=c_mysql_ex2 --rm docker-python sql.py

技术图片
在之前的运行mysql容器的终端查看
技术图片
4、cv.py


#简单的生成灰度图形
#通过cv2.imread直接实现,0表示使用灰度读入
#最后将灰度图像保存在同一目录下
import cv2

img = cv2.imread("image.jpg", 0)
cv2.imwrite(‘result.jpg‘, img)
print("success")

执行命令:

docker run --rm -v /home/yangchengjin/python/app:/app docker-python cv.py

技术图片
技术图片
技术图片











以上是关于2020系统综合实践的主要内容,如果未能解决你的问题,请参考以下文章

2020系统综合实践

20199318 2019-2020-2 《网络攻防实践》综合实践

20199301 2019-2020-2 《网络攻防实践》 综合实践

20199128 2019-2020-2 《网络攻防实践》综合实践

20199326 2019-2020-2 《网络攻防实践》综合实践

20199130 2019-2020-2 《网络攻防实践》综合大实践