站在巨人肩膀上造轮子
共 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它,我认为算是掌握了这门语言。
另外千万别说自己“精通”,曾经我也不知天高地厚过,还没毕业就在简历上写“精通”,结果对怼得体无完肤。还好,越老不知道的越多。
小长假,大家好好休息
昨天的次条是赠书活动的推文,发现一堆没关注的留言,我就好奇他们是怎么找到这篇文章的,看来以后加个硬性条件,关注至少一个月才有参加资格。
要劝退么?