class Travels(object): @staticmethod def insert_db(item, pipeline_obj): sql = ''' INSERT travels(id,name,authorId,viewCount,likeCount, commentCount,publishTime,picUrl,authorName, authorHeadImg,authorIndentity,hasLike) VALUES('{}','{}','{}','{}','{}','{}','{}','{}','{}','{}','{}','{}') '''.format(item["id"], item["name"], item["authorId"], item["viewCount"], item["likeCount"], item["commentCount"], item["publishTime"], item["picUrl"], item["authorName"], item["authorHeadImg"], item["authorIndentity"], item["hasLike"]) pipeline_obj.mysql_conn.query(sql ) pipeline_obj.mysql_conn.commit() @staticmethod def insert_redis(item, pipeline_obj): detail_url = "http://www.tuniu.com/trips/" + str(item["id"]) pipeline_obj.redis_obj.rpush("tuniu:detail_urls", detail_url) class TravelsDetail(object): @staticmethod def insert_db(item, pipeline_obj): sql = ''' INSERT travels_detail(id,taglist,destination,price)VALUES('{}','{}','{}','{}') '''.format(item["id"], item["taglist"], item["destination"], item["price"]) pipeline_obj.mysql_conn.query(sql) pipeline_obj.mysql_conn.commit()将每一行代码都做解释
时间: 2024-04-25 18:26:00 浏览: 211
SQL Server内部测试卷
这段代码定义了两个类:Travels和TravelsDetail,分别用于将旅游信息和旅游详情信息存储到MySQL数据库中。在这两个类中,都定义了一个静态方法insert_db,用于将数据插入到数据库中。在Travels类中,还定义了一个静态方法insert_redis,用于将旅游详情页的URL存储到Redis缓存中。
具体实现中,insert_db方法使用了SQL的INSERT语句,将item中的数据插入到名为travels的表中。pipeline_obj是传入的Pipeline类实例,通过它可以访问数据库连接和执行SQL语句。插入完成后,需要执行commit方法提交更改。
在Travels类的insert_redis方法中,首先根据item中的id构造了旅游详情页的URL,然后通过Redis的rpush方法将URL存储到名为tuniu:detail_urls的列表中。pipeline_obj.redis_obj是传入的Redis连接实例,通过它可以访问Redis缓存。
在TravelsDetail类的insert_db方法中,也是使用SQL的INSERT语句将item中的数据插入到名为travels_detail的表中,然后执行commit方法提交更改。
阅读全文