头歌答案--数据持久化(非数据库)

目录

​编辑

数据持久化(非数据库)

第1关:数据持久化(非数据库)

任务描述

多线程、多进程爬虫 

第1关:多线程、多进程爬虫

任务描述

Scrapy爬虫基础

任务描述

MySQL数据库编程

第1关:python数据库编程之创建数据库

任务描述

第2关:python数据库编程之创建数据表

任务描述

第3关:python数据库编程之插入数据

任务描述

第4关:python数据库编程之查询数据

任务描述

第5关:python数据库编程之修改数据

任务描述

第6关:python数据库编程之删除数据

任务描述


 

数据持久化(非数据库)

第1关:数据持久化(非数据库)

任务描述

本关任务:将网页上的图片数据持久化(保存)。

import os
import requests
from bs4 import BeautifulSoup
from lxml import etree
url = 'http://127.0.0.1:8080/imgs/'
headers = {
    'User-Agent': 'Mozilla/5.0 (Linux; Android 8.0.0; Pixel 2 XL Build/OPD1.170816.004) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Mobile Safari/537.36'
}
response = requests.get(url, headers=headers)
#********** Begin **********#
# 解析网页
html = etree.HTML(response.text)
img_srcs = html.xpath("//div[@class='box']/div/a/img/@src")
for img_src in img_srcs:
    name = img_src.split('/')[-1].split('.')[0]
# 请求图片地址
    img_url = "http://127.0.0.1:8080" + img_src
    img = requests.get(img_url)
# 判断保存图片的文件夹是否存在
    dir_path = 'step1/images'
    if not os.path.exists(dir_path):
        os.makedirs(dir_path)
    img_path = dir_path + '/' + name + '.jpg'  # 图片的最终存储路径
# 保存图片
    with open(img_path, 'wb')as file:
        file.write(img.content)
        
#********** End **********#

多线程、多进程爬虫 

第1关:多线程、多进程爬虫

任务描述

本关任务:使用多线程将网页上的图片数据下载并保存。

import requests
from lxml import etree
import time
from concurrent.futures import ThreadPoolExecutor, ProcessPoolExecutor
from multiprocessing import Pool
import os
import threading
import psutil
# URL伪装
header = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.163 Safari/537.36",
}
def downimg(img_src):
    start_time = time.time()
    
    name = img_src.split('/')[-1].split('.')[0]
    img_url = "http://127.0.0.1:8080" + img_src
    img = requests.get(img_url)
    dir_path = 'step1/images'
    if not os.path.exists(dir_path):
        os.makedirs(dir_path)
    img_path = dir_path + '/' + name + '.jpg'  # 图片的最终存储路径
    print(img_url, name + '.jpg', '开始下载。。。')
    thread = threading.currentThread()
    process = psutil.Process(os.getpid())
    print("线程ID:%s, 进程ID:%s"
          % (thread.ident, process.pid))
    #********** Begin *********#
    """保存图片"""
    with open(img_path, 'wb')as file:
        file.write(img.content)
    #********** End *********#
    finisTime = time.time() - start_time
    print(name + ".jpg 用时为:" + str(finisTime) + " second")
def parsePage():
    url = "http://127.0.0.1:8080/imgs/"
    response = requests.get(url=url, headers=header)
    html_content = response.text
    #********** Begin *********#
    """解析网页"""
    html = etree.HTML(html_content)
    item_list = html.xpath("//div[@class='box']/div/a/img/@src")
    print(item_list)
    s_time = time.time()
    
    #********** End *********#
    """非线程操作"""
    # for item in item_list:
    #     downimg(item)
    #********** Begin *********#
    """线程操作方式"""
    thread = []
    for item in item_list:
        
        thread.append(threading.Thread(target=downimg, args=(item, )))
    for t in thread:
        t.start()
    for t in thread:
        t.join()
    #********** End *********#
    print('总耗时: %s' % (time.time() - s_time))

Scrapy爬虫基础

第1关:Scarpy安装与项目创建

任务描述

本关任务:借助Scrapy框架编写一个最基本的爬虫小程序,掌握Scrapy的基础理论和使用。

scrapy startproject HelloWorld
cd HelloWorld
scrapy genspider world www.baidu.com

MySQL数据库编程

第1关:python数据库编程之创建数据库

任务描述

在现在的软件、web 开发中,越来越离不开数据库的支持,MySQL 是现在最流行的关系型数据库管理系统(RDBMS - Relational Database Management System),在 WEB 开发中,MySQL 是最好的 RDBMS 应用软件之一。在本教程中,会让大家快速掌握 python 使用 MySQL 的相关知识,并轻松使用 MySQL 数据库。

本关任务:使用 pymysql 创建数据库。

#!/usr/bin/python

# -*- coding: UTF-8 -*-

 

import pymysql

import mysql.connector

 

# 连接mysql,创建连接并返回连接对象

def connect():

    # 请在这里补充代码,完成本关任务,注意缩进格式为4个空格

    # ********* Begin ********* #

    conn = mysql.connector.connect(

    # mysql服务器主机地址

    host='127.0.0.1',

    # mysql服务器连接端口

    port=3306,

    # 用户名

    user='root',

    # 数据库名(若不选此参数则不指定具体数据库连接,我们可以使用use database来选择其它数据库)

    # db='db_name',

    # 用户密码

    passwd='123123',

    # 编码格式

    # charset='utf8'

    )

    # 使用cursor()函数创建一个游标对象

    # cursor = conn.cursor()

    return conn

 

    # *********  End  ********* #


 

def test():

    # 创建连接,并且返回连接对象

    conn = connect()

    # 创建游标对象

    cursor = conn.cursor()

    # 请在这里补充代码,完成本关任务,注意缩进格式为4个空格

    # ********* Begin ********* #

    cursor.execute("CREATE DATABASE  my_db")

    # *********  End  ********* #

    # 关闭游标

    cursor.close()

    # 关闭连接

    conn.close()

第2关:python数据库编程之创建数据表

任务描述

在现在的软件、web 开发中,越来越离不开数据库的支持,MySQL 是现在最流行的关系型数据库管理系统(RDBMS - Relational Database Management System),在 WEB 开发中,MySQL 是最好的 RDBMS 应用软件之一。在本教程中,会让大家快速掌握 python 使用 MySQL 的相关知识,并轻松使用 MySQL 数据库。

本关任务:使用 pymysql 创建数据表。

#!/usr/bin/python

# -*- coding: UTF-8 -*-

 

import pymysql


 

# 连接mysql,连接数据库my_db,创建连接并返回连接对象

def connect():

    # 请在这里补充代码,完成本关任务,注意缩进格式为4个空格

    # ********* Begin ********* #

    # 创建数据库连接

    conn = pymysql.connect(

        # mysql服务器主机地址

        host='127.0.0.1',

        # mysql服务器连接端口

        port=3306,

        # 用户名

        user='root',

        # 数据库名

        db='my_db',

        # 用户密码

        passwd='123123',

        # 编码格式

        charset='utf8'

    )

    return conn

 

    # *********  End  ********* #


 

def test():

    # 创建连接,并且返回连接对象

    conn = connect()

    # 创建游标对象

    cursor = conn.cursor()

    # 请在这里补充代码,完成本关任务,注意缩进格式为4个空格

    # ********* Begin ********* #

    cursor.execute('''CREATE TABLE user

    (id   INT(16) AUTO_INCREMENT PRIMARY KEY,

    username VARCHAR(32) NOT NULL,

    password varchar(32))

    ENGINE = MyISAM''')

 

    # *********  End  ********* #

    # 关闭游标

    cursor.close()

    # 关闭连接

    conn.close()

第3关:python数据库编程之插入数据

任务描述

在现在的软件、web 开发中,越来越离不开数据库的支持,MySQL 是现在最流行的关系型数据库管理系统(RDBMS - Relational Database Management System),在 WEB 开发中,MySQL 是最好的 RDBMS 应用软件之一。在本教程中,会让大家快速掌握 python 使用 MySQL 的相关知识,并轻松使用 MySQL 数据库。

本关任务:使用 pymysql 插入数据。

#!/usr/bin/python

# -*- coding: UTF-8 -*-

 

import pymysql


 

# 连接mysql,连接数据库my_db,创建连接并返回连接对象

def connect():

    # 请在这里补充代码,完成本关任务,注意缩进格式为4个空格

    # ********* Begin ********* #

    # 创建数据库连接

    conn = pymysql.connect(

        # mysql服务器主机地址

        host='127.0.0.1',

        # mysql服务器连接端口

        port=3306,

        # 用户名

        user='root',

        # 数据库名

        db='my_db',

        # 用户密码

        passwd='123123',

        # 编码格式

        charset='utf8'

    )

    return conn

    # *********  End  ********* #


 

def test():

    # 创建连接,并且返回连接对象

    conn = connect()

    # 创建游标对象

    cursor = conn.cursor()

    # 请在这里补充代码,完成本关任务,注意缩进格式为4个空格

    # ********* Begin ********* #

    cursor.execute("insert into user (username, password) values('teble', 'teble')")

    # *********  End  ********* #

    # 关闭游标

    cursor.close()

    # 关闭连接

    conn.close()

第4关:python数据库编程之查询数据

任务描述

在现在的软件、web 开发中,越来越离不开数据库的支持,MySQL 是现在最流行的关系型数据库管理系统(RDBMS - Relational Database Management System),在 WEB 开发中,MySQL 是最好的 RDBMS 应用软件之一。在本教程中,会让大家快速掌握 python 使用 MySQL 的相关知识,并轻松使用 MySQL 数据库。

本关任务:使用 pymysql 从数据库中查询数据。

#!/usr/bin/python

# -*- coding: UTF-8 -*-

 

import pymysql


 

# 连接mysql,连接数据库my_db,创建连接并返回连接对象

def connect():

    # 请在这里补充代码,完成本关任务,注意缩进格式为4个空格

    # ********* Begin ********* #

    # 创建数据库连接

    conn = pymysql.connect(

        # mysql服务器主机地址

        host='127.0.0.1',

        # mysql服务器连接端口

        port=3306,

        # 用户名

        user='root',

        # 数据库名

        db='my_db',

        # 用户密码

        passwd='123123',

        # 编码格式

        charset='utf8'

    )

    return conn

 

    # *********  End  ********* #


 

def test():

    # 创建连接,并且返回连接对象

    conn = connect()

    # 创建游标对象

    cursor = conn.cursor()

    # 请在这里补充代码,完成本关任务,注意缩进格式为4个空格

    # ********* Begin ********* #

    cursor.execute("select id, username, password from user ORDER BY id DESC")

    for data in cursor.fetchall():

        print(data)

    # *********  End  ********* #

    # 关闭游标

    cursor.close()

    # 关闭连接

    conn.close()

第5关:python数据库编程之修改数据

任务描述

在现在的软件、web 开发中,越来越离不开数据库的支持,MySQL 是现在最流行的关系型数据库管理系统(RDBMS - Relational Database Management System),在 WEB 开发中,MySQL 是最好的 RDBMS 应用软件之一。在本教程中,会让大家快速掌握 python 使用 MySQL 的相关知识,并轻松使用 MySQL 数据库。

本关任务:使用 pymysql 从数据库中修改数据。

#!/usr/bin/python

# -*- coding: UTF-8 -*-

 

import pymysql


 

# 连接mysql,连接数据库my_db,创建连接并返回连接对象

def connect():

    # 请在这里补充代码,完成本关任务,注意缩进格式为4个空格

    # ********* Begin ********* #

    # 创建数据库连接

    conn = pymysql.connect(

        # mysql服务器主机地址

        host='127.0.0.1',

        # mysql服务器连接端口

        port=3306,

        # 用户名

        user='root',

        # 数据库名

        db='my_db',

        # 用户密码

        passwd='123123',

        # 编码格式

        charset='utf8'

    )

    return conn

    # *********  End  ********* #


 

def test():

    # 创建连接,并且返回连接对象

    conn = connect()

    # 创建游标对象

    cursor = conn.cursor()

    # 请在这里补充代码,完成本关任务,注意缩进格式为4个空格

    # ********* Begin ********* #

    cursor.execute("update user set username = 'root',password='root' where id = '1'")

    # *********  End  ********* #

    # 关闭游标

    cursor.close()

    # 关闭连接

    conn.close()

第6关:python数据库编程之删除数据

任务描述

在现在的软件、web 开发中,越来越离不开数据库的支持,MySQL 是现在最流行的关系型数据库管理系统(RDBMS - Relational Database Management System),在 WEB 开发中,MySQL 是最好的 RDBMS 应用软件之一。在本教程中,会让大家快速掌握 python 使用 MySQL 的相关知识,并轻松使用 MySQL 数据库。

本关任务:使用 pymysql 从数据库中删除数据。

#!/usr/bin/python

# -*- coding: UTF-8 -*-

 

import pymysql


 

# 连接mysql,连接数据库my_db,创建连接并返回连接对象

def connect():

    # 请在这里补充代码,完成本关任务,注意缩进格式为4个空格

    # ********* Begin ********* #

    # 创建数据库连接

    conn = pymysql.connect(

        # mysql服务器主机地址

        host='127.0.0.1',

        # mysql服务器连接端口

        port=3306,

        # 用户名

        user='root',

        # 数据库名

        db='my_db',

        # 用户密码

        passwd='123123',

        # 编码格式

        charset='utf8'

    )

    return conn

    # *********  End  ********* #


 

def test():

    # 创建连接,并且返回连接对象

    conn = connect()

    # 创建游标对象

    cursor = conn.cursor()

    # 请在这里补充代码,完成本关任务,注意缩进格式为4个空格

    # ********* Begin ********* #

    cursor.execute("delete from user where id = '2'")

    # *********  End  ********* #

    # 关闭游标

    cursor.close()

    # 关闭连接

    conn.close()

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/135084.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【视觉SLAM十四讲学习笔记】第二讲——初识SLAM

专栏系列文章如下: 【视觉SLAM十四讲学习笔记】第一讲 一个机器人,如果想要探索某一块区域,它至少需要知道两件事: 我在什么地方——定位周围环境是什么样——建图 一方面需要明白自身的状态(即位置)&#…

八种架构设计模式优缺点

目录 1、软件架构 2、架构设计模式 2.1、单库单应用模式 2.2、内容分发模式 2.3、查询分离模式 2.4 微服务模式 2.5 多级缓存模式 1、软件架构 软件架构是指对软件系统整个结构和组成部分之间的关系进行抽象和定义的过程,旨在解决系统设计和实现过程中的复杂…

2023年【汽车驾驶员(高级)】找解析及汽车驾驶员(高级)复审考试

题库来源:安全生产模拟考试一点通公众号小程序 汽车驾驶员(高级)找解析是安全生产模拟考试一点通总题库中生成的一套汽车驾驶员(高级)复审考试,安全生产模拟考试一点通上汽车驾驶员(高级&#…

作业类型7333RG没有为成本中心7333+7000501在年度2023

创建 作业类型KP26 更改成本中心为生产部。 查看作业类型KL02, 可以看到这个有效期已超期,重新创建有效期KL01 但是创建成本要素时报错, 用KA06创建成本要素 返回KL01更正成本要素 这个有效期要注意不要重叠,否则无法创建新的有效期

【博士每天一篇文献-模型】A mechanistic model of connector hubs, modularity and cognition

阅读时间:2023-11-10 1 介绍 年份:2018 作者:Maxwell A. Bertolero, B. T. Thomas Yeo 期刊: nature human behaviour 引用量:180 2 创新点 作者提出了一个机制模型,解释了连接中枢的功能以及其对认知表…

Linux内核有什么之内存管理子系统有什么第七回 —— 小内存分配(5)

接前一篇文章:Linux内核有什么之内存管理子系统有什么第六回 —— 小内存分配(4) 本文内容参考: linux进程虚拟地址空间 《趣谈Linux操作系统 核心原理篇:第四部分 内存管理—— 刘超》 4.6 深入理解 Linux 虚拟内存…

手把手带你创建一个自己的GPTs

大家好,我是五竹。 最近GPT又进行了大升级,这一下又甩了国内AI几条街,具体更新了哪些内容之前的一篇文章中其实已经说过了:ChatGPT 王炸升级!更强版 GPT-4 上线! 其中最重要的一点就是支持自定义GPT&…

【博士每天一篇文献-算法】A pseudo-inverse decomposition-based self-organizing modular echo

阅读时间:2023-11-6 1 介绍 年份:2022 作者:王雷,北京信息科技大学自动化学院 期刊: Applied Soft Computing 引用量:12 提出了一种基于伪逆分解的自组织模块化回声状态(PDSM-ESN&#xff09…

代码随想录算法训练营第四十九天丨 动态规划part12

309.最佳买卖股票时机含冷冻期 思路 相对于动态规划:122.买卖股票的最佳时机II (opens new window),本题加上了一个冷冻期 在动态规划:122.买卖股票的最佳时机II (opens new window)中有两个状态,持有股票后的最多现金&#xf…

一文搞懂设计模式之单例模式

大家好,我是晴天,本周我们一起来学习单例模式。本文将介绍单例模式的基本属性,两种构造单例的方法(饿汉模式和懒汉模式)以及golang自带的sync.Once()方法。 什么是单例模式 GoF对单例模式的定义是:保证一个…

【Linux】WSL安装Kali及基本操作

😏★,:.☆( ̄▽ ̄)/$:.★ 😏 这篇文章主要介绍WSL安装Kali及基本操作。 学其所用,用其所学。——梁启超 欢迎来到我的博客,一起学习,共同进步。 喜欢的朋友可以关注一下,下次更新不迷路…

<C++> stack queue模拟实现

目录 前言 一、stack的使用 1. 接口说明 2. 例题 二、模拟实现stack 三、queue的使用 四、模拟实现queue 五、deque 总结 前言 LIFO stack 1. 栈是一种容器适配器,专门设计用于在后进先出上下文(后进先出)中运行,其中元素仅从容器…

Linux之基本指令操作

1、whoami whoami:查看当前账号是谁 2、who who:查看当前我的系统当中有哪些用户,当前有哪些人登录了我的机器 3、 pwd pwd:查看我当前所处的目录,就好比Windows下的路径 4、ls ls:查看当前目录下的文件信…

算法导论6:摊还分析,显式与隐式

P258 摊还分析概念 聚合分析,利用它,我们证明对于n,一个n个操作的序列最坏情况下的花费的总时间为T(n),因此,在最坏情况下,每个操作的平均代价(摊还代价)为T(n)/n 举了例子来形容这…

头歌答案Python——JSON基础

目录 ​编辑 Python——JSON基础 第1关:JSON篇:JSON基础知识 任务描述 第2关:JSON篇:使用json库 任务描述 Python——XPath基础 第1关:XPath 路径表达式 任务描述 第2关:XPath 轴定位 任务描述…

SOME/IP 协议介绍(四)RPC协议规范

RPC协议规范 本章描述了SOME/IP的RPC协议。 传输协议绑定 为了传输不同传输协议的SOME/IP消息,可以使用多种传输协议。SOME/IP目前支持UDP和TCP。它们的绑定在以下章节中进行了解释,而第[SIP_RPC_450页,第36页]节讨论了选择哪种传输协议。…

[C国演义] 第十八章

第十八章 最长斐波那契子序列的长度最长等差数列等差序列划分II - 子序列 最长斐波那契子序列的长度 力扣链接 子序列 ⇒ dp[i] — — 以 arr[i] 结尾的所有子序列中, 斐波那契子序列的最长长度子序列 ⇒ 状态转移方程 — — 根据最后一个位置的组成来划分 初始化 — — 根…

海外媒体发稿:彭博社发稿宣传中,5种精准营销方式

在如今的信息发生爆炸时期,营销方式多种多样,但是充分体现精准营销并针对不同用户群体的需求并非易事。下面我们就根据彭博社发稿营销推广为例子,给大家介绍怎样根据不同用户人群方案策划5种精准营销方式。 1.界定总体目标用户人群在制订精准…

Flink SQL 表值聚合函数(Table Aggregate Function)详解

使用场景: 表值聚合函数即 UDTAF,这个函数⽬前只能在 Table API 中使⽤,不能在 SQL API 中使⽤。 函数功能: 在 SQL 表达式中,如果想对数据先分组再进⾏聚合取值: select max(xxx) from source_table gr…

华为ensp搭建小型园区网络规划

文章目录 前言一、拓扑图二、数据规划三、设备配置四.配置命令1.配置接入层交换机ACC11.1 设备命名,创建VLAN1.2 配置eth-trunk 11.3 配置用户端 2.配置核心层交换机CORE2.1设备命名2.2配置Eth-Trunk2.3 vlan配置ip2.4 上行接口配置 3.DHCP配置3.1 CORE: 4.配置路由…