WECO开源共创社区

1,213 阅读4分钟

1 项目描述

WECO是一个开源的共创社区,是一片创意互相碰撞的土壤。在这里你可以查看、喜欢、评论他人发布的创意,可以关注和私信感兴趣的用户,当然还可以发布属于自己的创意!

作为WECO的技术支持和开发人员,简单来说,WECO是一个类似微博和知乎的内容管理系统,只不过这里的内容元素,也即微博的微型博客、知乎的问题以及答案,变为了创意。因此在考虑功能设计的时候,主要是从创意本身的特点出发,并结合社交平台和内容管理系统常见功能进行考虑。

2 技术框架

后端框架我选择了Flask,一个轻量级的python框架,前端使用Flask依赖的Jinjia渲染模版,以及Jquery、Bootstrap和font-awesome等。项目中还用Flask编写了一些RESTful APIs,基于动态分配token机制实现用户的认证和授权。

由于WECO属于商业项目,故此处不直接透露其部署地址,但代码始终坚持开源原则,托管于Github,clone下来后经过几步简单的配置,一个崭新的WECO(或者说常见功能皆具备的社交平台)就可以运行了。开发时间为1个月,总共有205次commit,代码量为万行级别。

3 功能介绍

WECO 1.0已经实现的功能包括但不仅限于:

  1. 用户注册、登录;
  2. 以“最新”、“最热”两种排序方式在首页瀑布流展示最新创意;
  3. 创意详情页包括封面图片、标题、分类、标签、作者信息、点赞数、阅读量、评论数和创意内容,喜欢创意、评论创意和评论点赞功能也已经实现;
  4. 查看其他用户,包括ta的头像、昵称、个性标签,ta的基本资料、ta的创意、ta喜欢的创意、ta的关注和ta的粉丝,关注用户和发送私信的功能也已经实现;
  5. 填写完创意标题、分类和标签,选择创意封面图片、编辑好创意内容之后即可发布创意。创意的内容由一段段文字、一张张图片和一个个视频等原子元素组成,发布之后还可以继续以时间轴的顺序编辑、添加和删除创意内容的各个原子元素;
  6. 编辑创意,包括更换封面图片、修改创意标题、分类和标签等内容;
  7. 搜索创意,搜索目标可以是创意或其他用户,支持关键词匹配搜索和创意分类搜索,并且实时显示“我”的最近搜索记录和当前系统实时热搜;
  8. 个人中心,在这里可以编辑我的个人资料,包括修改头像、昵称、性别、个性标签等信息,并可以删除自己的创意、取消喜欢已经喜欢的创意、取消关注已经关注的用户、查看有哪些粉丝关注了自己;
  9. 我的消息,在这里可以看到和自己相关的动态,如他人关注了自己、喜欢了自己的创意等,还可以看到别人发送的私信消息并打开私信窗。

文字介绍完了,准备开始发图了!

4 遇到的困难

大的技术难点有三,第一是Flask应用的部署,需要使用到wsgi,这里有参考介绍;第二是APIs的设计,采取动态分配token机制的话需要考虑到多设备登录有效性问题;第三是应用的模块化,Blueprint是一个好的解决方案,或者这里也有指导介绍。

小的技术难点包括图片上传、前端压缩和裁剪等,主要使用了lrzcropit两个js库,万事开头难,一开始的摸索是必须的,学会之后就会方便高效很多。

5 总结

本次项目给了我一个Flask实战的好机会,其实也是边学边用、在使用的过程中加强自己对Flask的熟悉程度。Flask相对于CI、TP等php框架最大最明显的优势是其为python框架,而python有着各个领域浩瀚无尽的拓展包。另外也接触了前端裁剪、压缩、上传图片,这些点在现在常见的应用中还是相当重要的。

如果觉得文章不错,不妨点一下左下方的喜欢~