做个TODO list小工具,给自己一个交代

近段时间以来,深刻的意识到了落实到行动上这句话的意义了。一直以来,看到某些好文章,突然后了好点子,就想着待会再看。然而碎片化的时间越来越碎,终究不能得偿所愿。

于是,做了一个简单的小工具,方便自己记录点滴小事,也希望能给自己一个督促。做一个行动派

我给它命名为TODO list ,意思就是待办事项清单。源码已经放到了github上。有兴趣的可以大致的看一下。https://github.com/guoruibiao/worktools/tree/master/todolist

基本上完成的效果有这么几个样子。完全是按照我自己的需求做的,所以可能不适合所有人的品味。

  • 工具首页
工具首页
  • 工具详情页


    工具详情页
  • 完成任务后


    完成任务后的状态切换

踩坑记录

本来是想着用Flask,顺便练习下RESTful。然后借助uwsgi和nginx完整地实现一下整个服务,结果uwsgi配置这块出了点问题,就直接用nginx代理http服务了。

遇到的坑有这么几个,这里也罗列下,如果刚好对你有所帮助,那我也是挺欣慰的了。

序列化问题

标准库json出现类似于XXX is not JSON serializable。 经过调试发现是pymysql获取结果集的时候,将timestamp类型的数据转成了datetime.datetime类型。因此出现上述错误。解决办法如下:

编码部分

class DateEncoder(json.JSONEncoder):
    """
    解决使用pymysql拿到的数据值中有datetime类型导致的错误
    """
    def default(self, obj):
        if isinstance(obj, datetime.datetime):
            return obj.strftime('%Y-%m-%d %H:%M:%S')
        elif isinstance(obj, datetime.date):
            return obj.strftime("%Y-%m-%d")
        else:
            return json.JSONEncoder.default(self, obj)

应用部分:

    def query(self, sql="", single=True):
        cursor = self.conn.cursor()
        effected_rows = cursor.execute(sql)
        fields = cursor.description
        if single:
            rs = cursor.fetchone()
        else:
            rs = cursor.fetchall()
        cursor.close()
        # 另类的XXX不能被默认的json库序列化的问题
        rs = json.dumps(rs, cls=DateEncoder)
        rs = json.loads(rs)
        return (effected_rows, fields, rs)

如此,便可以搞定序列化问题了。

flask外网访问问题

默认的host是localhost(或者127.0.0.1),这样在debug模式下,本地是可以访问的。但是如果想被外网访问到,host就需要改成0.0.0.0。这样在服务器上的程序,通过ip+端口就可以顺利的访问到了。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,890评论 18 139
  • 学习 Flask,写完一个 Flask 应用需要部署的时候,就想着折腾自己的服务器。根据搜索的教程照做,对于原理一...
    Cocoa_Coder阅读 17,216评论 4 56
  • 22年12月更新:个人网站关停,如果仍旧对旧教程有兴趣参考 Github 的markdown内容[https://...
    tangyefei阅读 35,223评论 22 257
  • [TOC]一直想做源码阅读这件事,总感觉难度太高时间太少,可望不可见。最近正好时间充裕,决定试试做一下,并记录一下...
    何柯君阅读 7,219评论 3 98
  • 生活总是在不经意给你惊喜,给你制造新的"哎呀",新的"惊艳"。 好友聚餐,被派出来提前拿号的我,提着袋子,...
    三三的沙拉阅读 198评论 0 1