站在巨人肩膀上造轮子

python之禅

共 3013字,需浏览 7分钟

 ·

2021-04-03 21:51

Python的生态就是好啊,你想要什么基本都能找到开源的方案,业务之外的代码很少还需要自己从0开始去撸代码的。当然不只是python,其它语言都非常open,开源的一大堆,只是相对来说Python更多。


如果开源的代码不满足需求,最多也只需要站在巨人肩膀上来改改就行。


昨天那篇文章最后还留了个尾巴,项目引用了GitHub上一个开源库 django-mdeditor。上传图片这个功能,我是希望把图片直接存阿里云oss(阿里云商务看到了麻烦给我打款)。


好处不用说,自然是为了方便和体验,服务器迁移的时候就不用考虑这些图片资源了,放云端有CDN的加持,用户体验也会好很多。


今天抽空就把这个项目拿来直接改造了,本来想发个issue给原作者去更新,我看这个项目最近的更新日志还是半年前,应该也是个“很懒”的家伙。


直接fork了一份代码,名字叫django-mdeditor-pplus,因为plus被人用了,那我就叫pplus。


加的代码其实不多,就是根据配置开关来判断是否要使用oss来存图片


# save image
file_full_name = '%s_%s.%s' % (file_name,
                             '{0:%Y%m%d%H%M%S%f}'.format(datetime.datetime.now()),
                             file_extension)
if MDEDITOR_CONFIGS.get("OSS"):
    # 使用阿里云存储
    import oss2
    auth = oss2.Auth(settings.OSS_ACCESS_KEY_ID, settings.OSS_ACCESS_KEY_SECRET)
    bucket = oss2.Bucket(auth, settings.OSS_ENDPOINT, settings.OSS_BUCKET_NAME)
    bucket.put_object(file_full_name, upload_image.read())
    url = f"https://{settings.OSS_BUCKET_NAME}.{settings.OSS_ENDPOINT}/{file_full_name}"
else:
    with open(os.path.join(file_path, file_full_name), 'wb+'as file:
        for chunk in upload_image.chunks():
            file.write(chunk)
    url = os.path.join(settings.MEDIA_URL,
                       MDEDITOR_CONFIGS['image_folder'],
                       file_full_name)

return JsonResponse({'success'1,
                   'message'"上传成功!",
                   'url': url})


当然你还可以扩展来支持更多平台,比如腾讯云、或者华为、七牛之类的云服务。



项目地址:https://github.com/lzjun567/django-mdeditor, 欢迎pull request 或者 fork 继续改造它。


所以,当有人问我怎么样才算掌握python或者掌握一个框架时?


我的答案是只要有独立解决问题的能力,不管是用什么方法,能hold它,我认为算是掌握了这门语言。


另外千万别说自己“精通”,曾经我也不知天高地厚过,还没毕业就在简历上写“精通”,结果对怼得体无完肤。还好,越老不知道的越多。


小长假,大家好好休息


碎碎念时刻

昨天的次条是赠书活动的推文,发现一堆没关注的留言,我就好奇他们是怎么找到这篇文章的,看来以后加个硬性条件,关注至少一个月才有参加资格。


后台回复“w”,可加我个人微信


推荐阅读


Django零代码集成 Markdown 编辑器
要劝退么?
浏览 15
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报