https://zhuanlan.zhihu.com/p/28102858

现在绝大多数同学都在使用微信,不过微信有很多限制,比如:

  1. 微信聊天记录只保存在本地,换个手机那些内容就找不到了
  2. 微信扫码加群人数有限制,超过100个就得先加群聊成员微信再由其拉进去,很不方便

很早就有想法把我的那些技术交流群也转移到微信上,不过当时想了想人工操作的成本太高作罢了。

但自从ItChat(一个网页版微信(http://wx.qq.com)的SDK)诞生以来,开发者有了和微信交互的机会,再之后出现了wxpy项目,开发者可以很方便的实现一些微信机器人之类的项目了。有一天刷到一个「Python 里itchat 模块能实现什么有趣的东西?」问题,然后回写了「申请加好友或者和好友聊天时带某个暗语,可以把你拉群,发现群满了之后自动创建群再把你拉入」的小例子。

我写新的项目都会尝鲜,换用更多的技术栈,尝试更多的技术选型。之前一直写React+Material-UI+Mobx这样的组合,Vue也只是在豆瓣电影的 选影视 上用到,就想着继续深入Vue,再用用Element-ui吧。另外对SSE和Redis的ORM库也想尝试下,上个月提上日程,做成了你们将要看到的Web端的微信管理系统,地址是 dongweiming/wechat-admin

首图就是这个后台的效果拼起来的。由于安全考虑我就不提供demo地址了,不过大家可以通过下面的一个短视频跟我登录感受一下(✪ω✪) :

 

在手机端从加人到进群的体验是这样的:

 

功能列表

  • 支持显示好友列表,可过滤
  • 支持显示群聊列表,可过滤
  • 可以同时给多个用户/群聊成员发送消息,支持发送文件,emoji表情。可预览
  • 如果为群聊创建者,可以删除(多个)成员
  • 可以选择好友/群聊成员创建新群
  • 对自动建群、加群关键词、邀请文本等可配置
  • 永久保存消息,可以通过消息列表页面查看和过滤。接收消息进程停止自动重启
  • 支持消息提醒
  • 支持发送加群聊成员好友请求
  • 自动添加联系人,拉对方入群,群满之后自动创建新群
  • 支持灵活的插件系统,内置图灵机器人、ChatterBot、Simsimi等插件
  • 可以指定公众号,当公众号发布文章后自动转发到指定的群聊里
  • 群成员可发起投票踢人,可以灵活的设置投票规则

用的技术和库

前端

Vue+Axios+Element-ui+Vue-cli

后端

Flask+Celery+SSE+Walrus+Gunicorn+Flask-Migrate+Flask-SQLAlchemy+ItChat(Fork版本)+Wxpy(Fork版本)+PyMySQL

注意本项目只支持Python 3 !

插件

目前自带了4个插件:

  • Simsimi 也就是当年的小黄鸡。默认未开启
  • Help帮助插件,根据所有插件的description属性的内容生成
  • Tuling图灵机器人,@群主即可开聊
  • Chatter基于机器学习的ChatterBot 和群主私聊

另外提供docker compose的方式让你快速部署应用。

欢迎star: dongweiming/wechat-admin 和使用,如果你有更多有意思的想法和功能欢迎提交PR和Issue,另外也可以贡献更多的插件

如果你对本项目有兴趣,可以加 Sanic(微信号python-org)入群感受,也可直接扫描如下二维码加我,如果验证信息中包含 python 可以直接进群,否则可以和Py之美私聊进群, 可打开项目链接进群:

https://github.com/dongweiming/wechat-admin/raw/master/screenshots/chat.png

注:之前的Py之美(微信号pythonorg)被暂时封禁了。

另外最近一段时间我将在微信公众号「Python之美」(微信号python_cn)中介绍这个项目技术选型,实现,走过的一些坑,还有Vue等相关的一些内容,欢迎关注。

微信管理系统基于Flask+Vue+Celery+SQLAlchemy+Redis等实现的更多相关文章

  1. 教程 Redis+ flask+vue 在线聊天

    知识点 基于 Server-Sent Event 工作方式,Web 即时通信 Redis 包 发布订阅功能的使用 flask 快速入门,常用对象实例方法函数 Vuejs 列表页面自动渲染 效果图 代码 ...

  2. Flask + vue 前后端分离的 二手书App

    一个Flask + vue 前后端分离的 二手书App 效果展示: https://blog.csdn.net/qq_42239520/article/details/88534955 所用技术清单 ...

  3. SZhe_Scan碎遮:一款基于Flask框架的web漏洞扫描神器

    SZhe_Scan碎遮:一款基于Flask框架的web漏洞扫描神器 天幕如遮,唯我一刀可碎千里华盖,纵横四海而无阻,是谓碎遮 --取自<有匪> 写在前面 这段时间很多时间都在忙着编写该项目 ...

  4. MoChat - 国内首款完全开源的 PHP 企业微信管理系统正式发布

    MoChat -- 让企业微信开发更简单 项目地址 Github: https://github.com/mochat-cloud/mochat Gitee: https://gitee.com/mo ...

  5. Flask 与 Celery 在 windows 下的集成问题

    Flask 与 Celery 在 windows 下的集成问题 所有的 Web 框架内部的视图中不适合执行需要长时间运行的任务,包括 Flask .Django 等.这类型的任务会阻塞 Web 的响应 ...

  6. 基于 Webpack & Vue & Vue-Router 的 SPA 初体验

    基于 Webpack & Vue & Vue-Router 的 SPA 初体验 本文来自于腾讯bugly开发者社区,非经作者同意,请勿转载,原文地址:http://dev.qq.com ...

  7. flask结合celery实现异步响应HTTP请求

    摘要: 1.场景描述 2.flask介绍 3.celery介绍 4.项目伪代码记录 5.几个备注点 内容: 1.场景描述 最近在优化用户画像的东西,要开发一个给文本打标签的服务:我这边需要提供一个HT ...

  8. Flask、Celery、RabbitMQ学习计划

    Flask (9.16-9.23) 相关组件了解 (9.16-17) WSGI:Werkzeug 数据库:SQLAlchemy   *重点查看 urls和视图 (9.18-19) session和co ...

  9. 使AJAX可缓存——基于flask

    主流浏览器都有缓存机制,主要基于HTTP协议定义的缓存策略.对于一定时间内不发生变动的文档缓存起来,对于下次请求,就可以直接返回缓存的结果.使用缓存有以下好处: 1.减少冗余的数据传输,节省网络流量成 ...

随机推荐

  1. ontouch、dispatchtouchevent、interceptouchevent-相关事件

    这几天一直在研究onTouch的相关方法,今天我们就来看看onTouchEvent.dispatchTouchEvent.onIntercepTouchEvent这三个方法在控件之间的传递顺序 pub ...

  2. Matrix学习——基础知识

    以前在线性代数中学习了矩阵,对矩阵的基本运算有一些了解,前段时间在使用GDI+的时候再次学习如何使用矩阵来变化图像,看了之后在这里总结说明. 首先大家看看下面这个3 x 3的矩阵,这个矩阵被分割成4部 ...

  3. 二叉树的递归插入【Java实现】

    C++中由于有指针的存在,可以让二叉树节点指针的指针作为插入函数的实参,在函数体内通过*操作实现对真实节点指针.节点左孩子指针.节点右孩子指针的改变,这样很容易使用递归将大树问题转化到小树问题.但在J ...

  4. Django环境搭建(一)

    搭建Django环境之前先搭建python运行环境 需要了解: 解释器(编译器): 计算机不能直接理解任何除机器语言外的其他语言,所以程序员必须要把自己写的语言翻译成机器语言,而将其他语言翻译成机器语 ...

  5. c# 调用 C++ dll 传入传出 字符串

    c# 调用 C++ dll 传入传出 字符串 2013-07-02 09:30 7898人阅读 评论(2) 收藏 举报 本文章已收录于:   分类: windows 版权声明:随便转载,随便使用. C ...

  6. Vijos 1164 曹冲养猪(中国剩余定理)

    P1164曹冲养猪 Accepted 标签:三国争霸[显示标签] 描写叙述 自从曹冲搞定了大象以后,曹操就開始捉摸让儿子干些事业,于是派他到中原养猪场养猪,但是曹冲满不高兴.于是在工作中马马虎虎,有一 ...

  7. 哈夫曼树的介绍 ---java实现

    一.     什么是哈夫曼树 是一种带权路径长度最短的二叉树,也称最优二叉树 带权路径长度:WPL=(W1*L1+W2*L2+W3*L3+...+ Wn*Ln) N个权值Wi(i=1,2,...n)构 ...

  8. Javascript和jquery事件--阻止事件冒泡和阻止默认事件

    阻止冒泡和阻止默认事件—js和jq相同,jq的event是一个全局的变量 我们写代码的时候常用的都是事件冒泡,但是有的时候我们并不需要触发父元素的事件,而浏览器也有自己的默认行为(表单提交.超链接跳转 ...

  9. Android小经验

    转载自:http://mp.weixin.qq.com/s?__biz=MzA4MjU5NTY0NA==&mid=404388098&idx=1&sn=8bbbba7692dc ...

  10. 如何获取用户的地理位置-浏览器地理位置(Geolocation)API 简介

    如何获取用户的地理位置-浏览器地理位置(Geolocation)API 简介 一.总结 一句话总结:Geolocation API(地理位置应用程序接口)提供了一个可以准确知道浏览器用户当前位置的方法 ...