最近看了TOO老师的录播课程,我发现我现在已经入门了

缘起是这样的,我学习Flask已经有很长时间了,然后纠结了好久自己终于写了一个像模像样的博客(当然,这只是自己练手的项目),其中除了学习实践以外,更多的是瞎蒙。

缘起是这样的,我学习Flask已经有很长时间了,然后纠结了好久自己终于写了一个像模像样的博客(当然,这只是自己练手的项目),其中除了学习实践以外,更多的是瞎蒙。

当然,我自己是不承认瞎蒙的,究竟是我一个字一个字的打出来的,代码粗糙倒是有可能。

作为在编程的人来说,是需要时刻保证学习状态的,《编程珠玑》的作者也是这样说的,谁没写过糟糕的代码呢?然而这些都是靠学习来弥补的,一次一次的将自己的代码进化。

我以前老实看不懂为什么有这么多配置,有的视频教程一个配置项就给你鼓捣出几堂课(通常都是几个小时),现在我懂了,为很么要这样。

@avatar.setter
def avatar(self, image_data):
    if 64 < len(image_data) < 1024 * 1024:
        import imghdr
        import os
        ext = imghdr.what("", h=image_data)
        if ext in setting['image_type'] and not self.is_xss_image(image_data):
            if self._avatar and os.path.exists(setting['avatar_path'] + self._avatar):
                os.unlink(setting['avatar_path'] + self._avatar)
            file_path = str(setting['avatar_path'] + self.uuid + '.' + ext)
            with open(file_path, 'wb') as f:
                f.write(image_data)
            self._avatar = self.uuid + '.' + ext
        else:
            raise validate.ValidateError("only is png jpeg jpg gif and bmp")
    else:
        raise validate.ValidateError("容量必须在1M以下,64KB以上")

例如这一段的setting[‘image_type],我前面是这样写的

if ext in ['png', 'jpeg', 'jpg', 'gif', 'bmp'] and not self.is_xss_image(image_data):
            if self._avatar and os.path.exists(setting['avatar_path'] + self._avatar):
                os.unlink(setting['avatar_path'] + self._avatar)
            file_path = str(setting['avatar_path'] + self.uuid + '.' + ext)

假设阿,你的老板说,我还希望可以上传psd格式的文件,你是不是要改疯阿(编辑器里,各种上传图片的调用方法里)?如果在配置里改,你就发现这个还不错,只需要在配置文件里改一下,所有相关的东西全都该过来了。

编程就跟学骑自行车一样,你不必要先搞清楚自行车每一个零件是怎样组装的,你只需要注意到你能不能骑上去,能跑。后来,你就会认识到,这个呀盘歪了会掉链条,飞轮坏了会踩空等。

所以呢,我就是这样,一边自己瞎鼓捣,一边看人家的前人的经验,然后自己再总结归纳,后来,这些代码就变得很简练了。

这里不是为了晒啥,只是写下来提醒自己,不要停止学习。附一段代码,自己写的

class SignUpHandler(BaseHandler):
    def data_received(self, chunk):
        pass

    def get(self, *args, **kwargs):
        kwargs = {
            "msg": "用户注册",
            "form": signup.SignUpForm()
        }
        self.render("passport/accounts/auth/SignUp.html", **kwargs)

    def post(self, *args, **kwargs):
        data = self.json.loads(self.request.body)
        form = signup.SignUpForm.from_json(data)
        if form.validate():
            result = auth_signup(self, data['name'], data['password'])
            if result['status'] is False:
                return self.write({"status": False, "message": result['msg'], "url": self.request.url})
            else:
                return self.write({"status": True, "message": result['msg']})       
        else:
            for key in form.errors:
                return self.write({"status": False, "message": str(form.errors[key])})

参考文献

相关文章