美文网首页程序员@IT·互联网
做个TODO list小工具,给自己一个交代

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

作者: 尽情的嘲笑我吧 | 来源:发表于2018-02-21 21:41 被阅读0次

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

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

我给它命名为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+端口就可以顺利的访问到了。

相关文章

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

    近段时间以来,深刻的意识到了落实到行动上这句话的意义了。一直以来,看到某些好文章,突然后了好点子,就想着待会再看。...

  • 自己写个小工具——图片水印生成器

    自己写个小工具——图片水印生成器 自己写个小工具——图片水印生成器介绍安装使用说明其他TODO LIST 介绍 做...

  • MVP之程序员怎么学习英语

    2020年09月08日02:40:58 背景: todo1:交代自己考MBA过程中,备考英语给的灵感 todo2:...

  • 文章汇总

    TODO LIST

  • list VS mind kind todo list

    todo list:以前我总是单纯把自己的todo list列得很多,最后的结果就是我执行不下去了。 freemi...

  • TODO List

    1.实验10.3的实时更新app icon功能。评价弹框 2.组件化实验 3.热更新 4.objc_msgSend...

  • TODO List

    gradlejvmactorgo

  • todo list

    constriant layout 解决的问题 扁平化布局,解决深层布局的性能问题,由于扁平带来的动画的解决方案 ...

  • TODO List

    2016年9月13日10:37:59 知识点: Android Botttom sheet结果: 尝试失败,实现不...

  • Todo List

    Features: Manage todo genuinely Urgent quest and chores U...

网友评论

    本文标题:做个TODO list小工具,给自己一个交代

    本文链接:https://www.haomeiwen.com/subject/lyootftx.html