2019年8月

最近在学Python,简单看了点特性和基础语法就开始自己写一个爬虫,目标是爬本博客。
项目github地址
因为写的时候参考的是github上的CrawlerHot爬虫项目,里面用到了with as语法写入文件,
开始只是初略了解到了如果用with as写文件的话是不需要file.close()。
然后继续跟着项目用了with as来执行ThreadPoolExecutor开线程来执行任务,但是没有深入了解为什么。
原.png
根据上图81行我原本是执行了shutdown(),但后面经网友指点了下with as的话是需不需要pool.shutdown()的,因为上下文管理器会自动帮你执行。
我就想上下文管理器是个什么? 但是感觉和之前写入文件时不需要file.close()有异曲同工之妙。

- 阅读剩余部分 -

需求

用户每日点击签到,获得x积分;用户连续签到y天后额外获得z积分。
x,y,z分别由后台配置。
需要记录用户今天是否已签到当前连续签到数本月签到列表数据供前端展示

表结构

CREATE TABLE `sign_in_logs` (
      `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
      `user_id` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '用户id',
      `year` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '年',
      `month` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '月',
      `date_list` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '签到日期列表(按位储存)',
      `count` tinyint(3) unsigned NOT NULL DEFAULT '0' COMMENT '累计连续签到的天数,到一定数量后清零',
      `last_date` varchar(16) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '上一次签到的日期',
      `created_at` timestamp NULL DEFAULT NULL,
      `updated_at` timestamp NULL DEFAULT NULL,
      PRIMARY KEY (`id`),
      KEY `sign_in_logs_user_id_index` (`user_id`),
      KEY `sign_in_logs_year_month_index` (`year`,`month`),
      KEY `sign_in_logs_date_list_index` (`date_list`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

- 阅读剩余部分 -