前段时间我们项目有个消息实时推送的需求,比如用户在我们软件下了一个订单,商家在我们软件上不用手动刷新页面就会收到客户下单的消息,就是我们后端主动给前端推送消息。我们就考虑用了实时通讯的技术。现在我们的项目是用 django 框架写的,需要借助 Django-Channels实现通讯,通讯协议就不能用 http了,因为 http 不支持长连接,我们这次项目中用到的是 websocket 协议。
WebSocket协议和HTTP协议一样,都是在ISO七层模型的最顶层——应用层。WebSocket允许服务器端主动向客户端推送数据。在WebSocket协议中,客户端浏览器和服务器只需要完成一次握手就可以创建持久性的连接,并在浏览器和服务器之间进行双向的数据传输——全双工通讯。
在之前的一篇文章中:为美多商城(Django2.0.4)添加基于websocket的实时通信,主动推送,聊天室及客服系统,详细介绍了websocket协议以及结合Django如何实现各种功能,本次我们尝试采用Socket.io这个库和Flask来配合使用,完成一个简易的在线客服聊天系统,看看二者有什么区别。
需要创建一个审批流程通过钉钉的审批应用或飞书的审批功能来实现。在流程中添加适当的字段来收集用户输入的数据,如代码版本、部署环境等信息
webSocket使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据。在WebSocket API中,浏览器和服务器只需要完成一次握手,两者之间就直接可以创建持久性的连接,并进行双向数据传输
前面学习了Celery定时任务,那么在现实中最常用到的就是定时发送消息和邮件了。现在学习一下。
https://github.com/geeeeeeeek/python_jiajiao
平台采用B/S结构,后端采用主流的Python+Django进行开发,前端采用主流的Vue.js进行开发。
https://github.com/geeeeeeeek/python_travel
平台采用B/S结构,后端采用主流的Python语言+django框架进行开发,前端采用主流的Vue.js进行开发。
Celery是一个Python任务队列系统,用于处理跨线程或网络节点的工作任务分配。它使异步任务管理变得容易。 您的应用程序只需要将消息推送到像RabbitMQ这样的代理,Celery worker会弹出它们并安排任务执行。
HTTP 协议有一个缺陷:通信只能由客户端发起,做不到服务器主动向客户端推送信息。 WebSocket 协议它的最大特点就是,服务器可以主动向客户端推送信息,客户端也可以主动向服务器发送信息,是真正的双向平等对话,属于服务器推送技术的一种。
公司内部使用Django作为后端服务框架的Web服务,当需要使用公司内部搭建的Ldap 或者 Windows 的AD服务器作为Web登录认证系统时,就需要这个Django-auth-ldap第三方插件
Channels是一个采用Django并将其功能扩展到HTTP以外的项目,以处理WebSocket,聊天协议,IoT协议等。它基于称为ASGI的Python规范构建。
https://github.com/geeeeeeeek/python_book
用的是Django,不得不说,Django里面的ORM比fastapi的舒服多了,为所欲为。
在 HelloDjango 全栈系列教程的第一步——Django博客教程(第二版)中,我们一步步地开发了一个功能完善的个人博客系统。
关于Django的介绍,之前在2018年9月17号的文章中已经讲过了,大家有兴趣可以翻翻之前的文章,这里再简单介绍下:
文章介绍并整理了一直在维护的一个小项目:京东价格监控,并详细整理了该项目前前后后几次重构的技术选型,作为一篇总结。
我们使用Django开发网站后台是,会有账号密码认证登录的需求,一般公司内部会使用Windows 的AD 或者Linux下的OpenLDAP进行账号密码认证。以下为Django使用Windows AD进行账号认证的配置,代码全部配置在Django的setting.py 文件中,代码如下:
Geewolf:《FastDFS分布式存储实战》作者,国内第一本《Ansible中文手册》译者、Flamingo、FMS作者
https://github.com/geeeeeeeek/python_hotel
由于业务需要,我司的产品越来越多,api接口监控相对比较薄弱,对此要搭建HTTP(s)的监控系统,之前一直使用第三方的监控系统,比如阿里云的云监控。
这篇文章基于我对后端框架的了解以及研究,提供了2021-2022年度以及未来一年内可能流行的后台框架。
马上就到9月了,阿里云给我推送了我的云服务器即将过期请续费的提醒短信。面对一年九百多的服务费用,虽然很不情愿继续支付,但是为了博客能够继续运行也懒得麻烦去换服务器,于是还是续费了。
关于监控系统我们前面介绍了很多,学会了如何使用Django新建网站以及获取数据监控数据至MySQL或redis
前言:这是2018年push的一篇文章,但是最近有很多人在群里或者私我咨询说linux安装python(较多)django(较少)问题,这里就再次整理一下推送出来,一切的开始都是友谊的开始。
markdown是一个非常好的编辑器,用过的都说好,如果搭建一个博客平台的话,需要在后台做文章编辑,可以整合一个markdown的文本编辑器。 github上关于django的markdown插件很多的,看了半天也不知道选哪个好,本篇用django-mdeditor先试试
我的博客是如何工作的? HTTP服务器 当你开发在网页上访问我的博客的时候,你可能会注意到上面的协议是HTTPS。 但是并不会察觉到它是HTTP2.0。而这需要一个可以支持HTTP2.0的HTTP服务
Django是一个高效、功能强大的Python Web框架,它被广泛用于构建各种规模的Web应用程序。无论是初学者还是有经验的开发人员,都可以从入门到掌握Django的高级技巧。在本指南中,我们将带你逐步了解Django的核心概念和高级功能,通过代码实例和解析来详细说明。
Django Django - Django。 Channels - Channels旨在增强Django的异步能力,同时让Django不仅仅局限于Request-Response模型,能够支持WebSocket、HTTP2推送和背景任务。2015年出现的十大流行Python库 。 Django-Baker - Django Baker可以帮助开发者快速启动项目。只要提供app名称,Django Baker就可以根据models.py文件中的models,自动生成视图、表单、URL、admin页面以及
在后端开发领域,选择一个适合项目需求的框架是至关重要的。Django、Flask和FastAPI是Python中备受欢迎的后端框架,本文将深入比较它们的优缺点,并为开发者提供在不同场景下的选择建议。
1, Web应用。 当用户触发的一个操作需要很长时间才能执行完成,那么就可以把它当做一个任务去交给Celery去异步执行, 执行完成之后再返回给用户,这短时间用户不需要等待响应处理的过程, 反而提高了网站吞吐量和响应时间。
前言 iOS和Android上的实时消息推送差异很大,往小了说是技术实现的差异,往大了说是系统实现理念的不同。实时消息推送在移动端互联网时代很平常,也很重要,它的存在让智能终端真正成为全时信息传播的工具。本文将从原理上谈谈两个平台上实时消息推送的区别。 简要对比 1iOS的实时消息推送 iOS 系统的推送(APNS,即 Apple Push Notification Service)依托一个或几个系统常驻进程运作,是全局的(接管所有应用的消息推送),所以可看作是独立于应用之外,而且是设备和苹果服务器
对于企业来说,在进行产品发布或营销推广时,都需要大量的信息收集汇总。此时都会用到表单功能,网站上的表单功能应用非常广泛,可做信息收集效果,可做付费预约效果等,而如果希望能实时推送表单收集到的数据,凡科建站就可以实现这一功能。
之前项目中使用了 webscoket 进行实现消息实时通知,我们是另外单独运行了一个消息推送服务项目,使用了django-channels 实现websocket,项目使用的是asgi 协议,不是原先的wsgi协议。运行项目时,提示也和wsgi的不一样,如下图:
本文以海量用户的挑战下做到亿级消息推送为主题,结合信鸽产品的成功经验进行了分享。
Tornado是一种 Web 服务器软件的开源版本。Tornado 和主流Web 服务器框架(包括大多数 Python 的框架)有着明显的区别 它是非阻塞式服务器,而且速度相当快
网络不断发展,现在可以实现以前只能在本机移动设备上使用的功能。JavaScript 服务工作者的引入为Web提供了新的功能,可以执行后台同步,脱机缓存和发送推送通知等功能。
平台采用B/S结构,后端采用主流的Python语言进行开发,前端采用主流的Vue.js进行开发。给师弟做的毕业设计。
https://github.com/geeeeeeeek/python_video
平台采用B/S结构,后端采用主流的Python语言进行开发,前端采用主流的Vue.js进行开发。
(2) 安装依赖。进入 server 目录下,执行 pip install -r requirements.txt
前几天元旦, 用Python为自家公众号做了一个"革面"的活动页面,活动的效果非常好,分享一下实现过程 前端: BootStrap, Jquery, Jcrop 后端: Django, Pillow
首先得明确一点,和Django一样,在2020年Flask 1.1.1以后的版本都不需要所谓的三方库支持,即Flask-Celery或者Flask-Celery-Help这些库,直接使用Celery原生库即可。
我分享的主题是腾讯信鸽海量移动推送服务的构建,在加入腾讯TEG数据平台部后,我主要从事大数据相关的一些系统和应用开发。最近一两年主要是构建腾讯云推送,也就是信鸽这个系统。对于消息推送来说,它是触达移动用户的一个很重要的方式,基本上是每个应用必备的能力。然而受限于整体的终端环境、网络环境和后台的服务能力,如果想要做到百亿级别的消息推送以及推送后的效果跟踪,还是有不小的技术挑战。再进一步来说,如果只给用户提供感兴趣的内容,做到精细化的运营,又需要在数据和机器学习平台上有深度的积累,引入BI的能力。
领取专属 10元无门槛券
手把手带您无忧上云